פיתוח אפליקציה ב-Python

‏Buildpacks תומכים בתצורת שפה אידיומטית באמצעות משתני סביבה.

ציון גרסת Python

כברירת מחדל, ה-buildpack של Python Runtime משתמש בגרסה היציבה והעדכנית ביותר של רכיב התרגום ב-Python. אם באפליקציה שלכם דרושה גרסה ספציפית, תוכלו לציין אותה על ידי הוספת קובץ .python-version לתיקיית השורש של האפליקציה.

3.9.9

שימוש ב-GOOGLE_PYTHON_VERSION

אפשר גם לציין את גרסת Python באמצעות משתנה הסביבה GOOGLE_PYTHON_VERSION. אם הגדרתם את שתי התצורות, הערך של GOOGLE_PYTHON_VERSION מקבל קדימות על פני הקובץ .python-version. כברירת מחדל, אם לא מציינים את הקובץ .python-version ואת משתנה הסביבה GOOGLE_PYTHON_VERSION, נעשה שימוש בגרסת ה-LTS העדכנית ביותר של Python.

כדי להגדיר שה-buildpack ישתמש ב-Python 3.10 בפריסה של האפליקציה:

pack build sample-python --builder=gcr.io/buildpacks/builder \
  --env GOOGLE_PYTHON_VERSION="3.10.x"

אתם גם יכולים להשתמש במתאר של פרויקט project.toml כדי לקודד את משתנה הסביבה לצד קובצי הפרויקט. במאמר פיתוח אפליקציות באמצעות משתני סביבה מפורטות ההוראות.

ציון יחסי תלות באמצעות PIP

ה-buildpack של Python תומך בניהול יחסי תלות של אפליקציות באמצעות PIP. צריך להצהיר על יחסי התלות של האפליקציה בקובץ requirements.txt של תיקיית השורש.

הקובץ requirements.txt מכיל שורה אחת לכל חבילה. כל שורה מכילה את שם החבילה, ואת הגרסה המבוקשת (אופציונלי). למידע נוסף: מקור המידע requirements.txt.

קובץ requirements.txt לדוגמה:

requests==2.20.0
numpy

הגדרה של PIP

אפשר להגדיר את ההתנהגות של PIP באמצעות משתני סביבה:

pack build sample-python --builder=gcr.io/buildpacks/builder \
  --env PIP_DEFAULT_TIMEOUT='60'

יחסי תלות פרטיים מ-Artifact Registry

מאגר Python ב-Artifact Registry יכול לארח יחסי תלות פרטיים של פונקציית Python. כשמפתחים אפליקציה ב-Cloud Build, ה-buildpack של Python ייצור לחשבון השירות ב-Cloud Build פרטי כניסה ל-Artifact Registry באופן אוטומטי. צריך לכלול רק את כתובת ה-URL של Artifact Registry שב-requirements.txt בלי ליצור פרטי כניסה נוספים. לדוגמה:

--extra-index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage

נקודת כניסה לאפליקציה

ה-buildpack של Python משתמש ב-Gunicorn בתור שרת ברירת המחדל של WSGI HTTP בעומס העבודה. אפליקציות שפותחו באמצעות buildpack של Python מתחילות את התהליך gunicorn עם הגדרות ברירת המחדל, בדומה להרצה של הקוד:

gunicorn --bind :8080 main:app

התאמה אישית של נקודת הכניסה לאפליקציה

אפשר לשנות את הגדרות ברירת המחדל ולהתאים אישית את פקודת ההתחלה של האפליקציה באמצעות Procfile או משתנה סביבה.

אתם יכולים ליצור קובץ Procfile עם הגדרות בהתאמה אישית בתיקיית השורש. דוגמה:

web: gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app

לחלופין, אתם יכולים להשתמש במשתנה הסביבה GOOGLE_ENTRYPOINT באמצעות הפקודה pack. דוגמה:

pack build sample-python \
  --builder gcr.io/buildpacks/builder
  --env "GOOGLE_ENTRYPOINT='gunicorn --bind :$PORT main:app'"

משתני סביבה

כדי להתאים אישית את הקונטיינר, ה-buildpack של Python תומך במשתני הסביבה הבאים

PIP_<key>

ראו מאמרי העזרה בנושא PIP.

דוגמה:PIP_DEFAULT_TIMEOUT=60 מגדיר את --default-timeout=60 לפקודות pip.