التعامل مع التبعيات


هناك طريقتان لتحديد التبعيات للوظائف السحابية المكتوبة بلغة Python: استخدام ملف robots.txt الخاص بمدير حزمة requirements.txt أو تعبئة التبعيات المحلية إلى جانب وظيفتك.

مواصفات التبعية التي تستخدم معيار Pipfile/Pipfile.lock غير مدعومة. يجب ألا يتضمن مشروعك هذه الملفات.

تحديد التبعيات مع النقطة

تتم إدارة التبعيات في لغة Python باستخدام النقطة (pip) ويتم التعبير عنها في ملف بيانات تعريف يسمى requirements.txt . يجب أن يكون هذا الملف في نفس الدليل مثل الملف main.py الذي يحتوي على رمز وظيفتك.

عندما تقوم بنشر وظيفتك أو إعادة نشرها، تستخدم Cloud Functions النقطة لتنزيل أحدث إصدار من تبعياتك وتثبيته كما هو موضح في ملف requirements.txt . يحتوي ملف requirements.txt على سطر واحد لكل حزمة. يحتوي كل سطر على اسم الحزمة، واختياريًا، الإصدار المطلوب. لمزيد من التفاصيل، راجع مرجع requirements.txt .

لمنع تأثر الإصدار الخاص بك بتغييرات إصدار التبعية، فكر في تثبيت حزم التبعية الخاصة بك على إصدار معين.

فيما يلي مثال لملف requirements.txt :

functions-framework
requests==2.20.0
numpy

يعد إطار الوظائف تبعية مطلوبة لجميع الوظائف. على الرغم من أن Cloud Functions تقوم بتثبيتها نيابةً عنك عند إنشاء الوظيفة، إلا أننا نوصي بتضمينها باعتبارها تبعية صريحة للوضوح.

إذا كانت وظيفتك تعتمد على تبعيات خاصة، فنوصيك بنسخ functions-framework إلى السجل الخاص بك. قم بتضمين functions-framework المتطابقة باعتباره تبعية لوظيفتك لتجنب تثبيت الحزمة من الإنترنت العام.

تعبئة التبعيات المحلية

يمكنك أيضًا حزم التبعيات ونشرها إلى جانب وظيفتك. يعد هذا الأسلوب مفيدًا إذا لم تكن تبعيتك متاحة عبر مدير حزمة النقطة أو إذا كان الوصول إلى الإنترنت في بيئة Cloud Functions الخاصة بك مقيدًا.

على سبيل المثال، يمكنك استخدام بنية دليل مثل ما يلي:

myfunction/
├── main.py
└── localpackage/
    ├── __init__.py
    └── script.py

يمكنك بعد ذلك استيراد الكود كالمعتاد من localpackage باستخدام عبارة import التالية.

# Code in main.py
from localpackage import script

لاحظ أن هذا الأسلوب لن يقوم بتشغيل أي ملفات setup.py . لا يزال من الممكن تجميع الحزم التي تحتوي على هذه الملفات، ولكن قد لا تعمل بشكل صحيح على Cloud Functions.