יש שתי דרכים לציין יחסי תלות של Cloud Functions שכתובים ב-
Python: באמצעות מנהל החבילות pip
יחסי תלות מקומיים של קובץ או אריזת requirements.txt
לצד הפונקציה.
לא ניתן לציין יחסי תלות באמצעות התקן Pipfile/Pipfile.lock. הפרויקט לא אמור לכלול את הקבצים האלה.
ציון יחסי תלות באמצעות PIP
יחסי תלות ב-Python מנוהלים באמצעות PIP ומבוטאים בקובץ מטא-נתונים
קראו
requirements.txt
הקובץ חייב להיות באותה ספרייה כמו הקובץ main.py
שמכיל את
קוד פונקציה.
כשפורסים או פורסים מחדש את הפונקציה, Cloud Functions
משתמשת ב-pip כדי להוריד ולהתקין את הגרסה האחרונה של
של יחסי התלות כפי שהוצהר בקובץ requirements.txt
.
הקובץ requirements.txt
מכיל שורה אחת לכל חבילה. כל שורה מכילה את שם החבילה, ואת הגרסה המבוקשת (אופציונלי). למידע נוסף: מקור המידע requirements.txt
.
כדי למנוע השפעה של ה-build שלך משינויים בגרסת התלות, מומלץ להצמיד את חבילות התלות לגרסה ספציפית.
קובץ 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.