יש שתי דרכים לציין יחסי תלות עבור 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
Functions Framework הוא תלות חובה לכל הפונקציות. למרות ש-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.