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


هناك طريقتان لتحديد التبعيات الخاصة بـ Cloud Functions المكتوبة بلغة Python: استخدام ملف requirements.txt الخاص بأداة إدارة الحزم pip أو تجميع التبعيات المحلية مع الدالة.

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

تحديد التبعيات باستخدام pip

تتم إدارة التبعيات في Python باستخدام 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 كعنصر تابع للدالة لتجنُّب تثبيت الحزمة من الإنترنت العام.

تجميع المهام التابعة المحلية

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

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

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

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

# Code in main.py
from localpackage import script

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