هناك طريقتان لتحديد اعتماديات دوال السحابة الإلكترونية المكتوبة بلغة Python، وهما: استخدام ملف requirements.txt
الخاص بمدير الحِزم pip أو تجميع التبعيات المحلية إلى جانب وظيفتك.
لا يتم توفير مواصفات التبعية التي تستخدم معيار Pipfile/Pipfile.lock. يجب ألا يتضمن مشروعك هذه الملفات.
تحديد التبعيات باستخدام pip
تتم إدارة التبعيات في بايثون باستخدام pip ويتم التعبير عنها في ملف بيانات وصفية يسمى
requirements.txt
.
يجب أن يكون هذا الملف في الدليل نفسه الذي يتضمّن الملف main.py
الذي يحتوي على رمز الدالة.
عند نشر الدالة أو إعادة نشرها، تستخدم دوال Cloud
ملف pip لتنزيل أحدث إصدار من العناصر التابعة لك وتثبيتها كما هو موضّح في ملف requirements.txt
.
يتضمّن ملف requirements.txt
سطرًا واحدًا لكل حزمة. يحتوي كل سطر على اسم الحزمة،
واختياريًا، الإصدار المطلوب. لمزيد من التفاصيل، يُرجى الاطّلاع على مرجع requirements.txt
.
لمنع تأثُّر إصدارك بالتغييرات في إصدار التبعية، يمكنك تثبيت حِزم التبعية على إصدار معيّن.
في ما يلي مثال على ملف requirements.txt
:
functions-framework requests==2.20.0 numpy
إنّ إطار عمل الدوال هو تبعية مطلوبة لجميع الدوال. على الرغم من أنّ ميزة Cloud Functions تقوم بتثبيتها نيابةً عنك عند إنشاء الدالة، ننصحك بتضمينها باعتبارها اعتمادية صريحة من أجل الوضوح.
إذا كانت وظيفتك تعتمد على اعتماديات خاصة، ننصحك بمزامنة functions-framework
مع قاعدة بيانات المسجّلين الخاصة. يمكنك تضمين العلامة functions-framework
المنسوخة كملحق لوظيفتك لتجنُّب تثبيت الحزمة من شبكة الإنترنت العامة.
تعبئة التبعيات المحلية في حزمة
يمكنك أيضًا تجميع التبعيات ونشرها إلى جانب الدالة. يكون هذا الأسلوب مفيدًا في حال لم تكن تبعيتك متاحة عبر مدير حزم pip أو إذا كان الوصول إلى الإنترنت في بيئة Cloud Functions محدودًا.
على سبيل المثال، يمكنك استخدام بنية دليل مثل ما يلي:
myfunction/ ├── main.py └── localpackage/ ├── __init__.py └── script.py
يمكنك بعد ذلك استيراد الرمز كالمعتاد من localpackage
باستخدام عبارة import
التالية.
# Code in main.py from localpackage import script
يُرجى العلم أنّ هذه الطريقة لن تعمل على تشغيل أي ملفات setup.py
. يمكن تجميع الحزم التي تحتوي على هذه الملفات،
ولكن قد لا تعمل بشكل صحيح على دوال السحابة.