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