טיפול בתלות


ישנן שתי דרכים לציין תלות עבור פונקציות ענן הכתובות ב-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 לרישום הפרטי שלך. כלול את ה-mirrored 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.