טיפול ביחסי תלות


יש שתי דרכים לציין יחסי תלות עבור 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

אריזה של יחסי תלות מקומיים

אפשר גם לארוז ולפרוס יחסי תלות לצד הפונקציה. הגישה הזו שימושית אם התלות לא זמינה דרך מנהל החבילות 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.