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


هناك طريقتان لتحديد التبعيات لدوال السحابة المكتوبة في بايثون: باستخدام ملف 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.