בדף הזה מוסבר איך פורסים אפליקציות לפונקציות Cloud Run באמצעות Cloud Build. אם אתם חדשים ב-Cloud Build, כדאי קודם לקרוא את המדריכים למתחילים ואת הסקירה הכללית על הגדרת Build.
פונקציות Cloud Run הן סביבת מחשוב ללא שרת (serverless) לפיתוח ולחיבור של שירותי ענן. באמצעות פונקציות Cloud Run אפשר לכתוב פונקציות למטרה יחידה, ולצרף אותן לאירועים שמופקים בתשתית ובשירותי הענן. הפונקציה מופעלת כשמופעל אירוע שעוקבים אחריו. מידע נוסף על פונקציות Cloud Run זמין במאמרי העזרה בנושא פונקציות Cloud Run.
לפני שמתחילים
מפעילים את Cloud Run functions API:
חשוב להכין את קוד המקור של האפליקציה. קוד המקור צריך להיות מאוחסן במאגר כמו GitHub או Bitbucket.
כדי להריץ את הפקודות
gcloudשבדף הזה, צריך להתקין את Google Cloud CLI.
הרשאות נדרשות לניהול זהויות והרשאות גישה (IAM)
-
במסוף Google Cloud , נכנסים לדף settings Cloud Build Permissions:
בחשבון השירות שצוין ב-Cloud Build או בחשבון השירות שמוגדר כברירת מחדל ב-Cloud Build, מגדירים את הסטטוס של התפקידים הבאים למופעל:
- מפתח Cloud Functions (
roles/cloudfunctions.developer) | לפריסה ולניהול של פונקציות.- בחלונית Assign Service Account User Role (הקצאת התפקיד Service Account User), בוחרים חשבון שירות להתחזות אליו ולוחצים על Grant Permission (מתן הרשאה).
- אדמין של Cloud Run (
roles/run.admin) | מאפשר לחשבון השירות של Cloud Build לפרוס גרסאות חדשות ב-Cloud Run. - אדמין לניהול נפח האחסון (
roles/storage.admin) | מאפשר קריאה וכתיבה מ-Cloud Storage. - כותב של Artifact Registry (
roles/artifactregistry.writer) | מאפשר שליפת תמונות מ-Artifact Registry וכתיבה ב-Artifact Registry. - כותב יומנים (
roles/logging.logWriter) | מאפשר לכתוב רשומות ביומן ב-Cloud Logging. - עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) | מאפשר לחשבון השירות להריץ בנייה.
- מפתח Cloud Functions (
הגדרת הפריסה
באמצעות Cloud Build אפשר להשתמש בכל קובץ אימג' של קונטיינר שזמין לציבור כדי להריץ את המשימות. כדי לעשות את זה, מציינים את התמונה ב-step build בקובץ ההגדרות של Cloud Build.
פונקציות Cloud Run מספקות את הפקודה gcloud functions deploy, שפורסת את הפונקציה מהספרייה שמכילה את קוד הפונקציה.
אתם יכולים להשתמש בתמונת cloud-sdk כשלב build בקובץ ההגדרות כדי להפעיל פקודות gcloud בתוך התמונה.
הארגומנטים שמועברים לשלב ה-build הזה מועברים ישירות אל Google Cloud CLI, כך שאפשר להריץ כל פקודה של gcloud בתמונה הזו.
כדי לפרוס אפליקציה לפונקציות Cloud Run, פועלים לפי השלבים הבאים:
- בתיקיית השורש של הפרויקט, יוצרים את קובץ תצורת ה-Cloud Build בשם
cloudbuild.yamlאוcloudbuild.json. בקובץ התצורה:
- מוסיפים שדה
nameומציינים את שלב הבנייהgcloud. - מוסיפים
functions deployלשדהargsכדי להפעיל את הפקודהgcloud functions deploy. אפשרויות ההגדרה הזמינות מפורטות במאמרgcloud functions deploy.
--source=.מציין שקוד המקור נמצא בספריית העבודה הנוכחית.
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIMEJSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }מחליפים את ערכי ה-placeholder בקובץ התצורה שלמעלה בערכים הבאים:
-
FUNCTION_NAMEהוא השם של פונקציות Cloud Run שאתם פורסים. אם מעדכנים פונקציה קיימת, הערך הזה צריך להיות זהה לשם הפונקציה שמעדכנים. -
FUNCTION_REGIONהוא האזור שבו אתם פורסים פונקציות Cloud Run. רשימת האזורים הנתמכים מופיעה במאמר מיקומים של פונקציות Cloud Run. -
--trigger-httpהוא סוג הטריגר של הפונקציה הזו, ובמקרה הזה מדובר בבקשת HTTP (webhook). -
RUNTIMEהוא זמן הריצה שבו הפונקציה תפעל.
מידע נוסף על השימוש ב-
gcloud functions deployזמין במסמכי העזרה בנושא פונקציות Cloud Run.- מוסיפים שדה
מתחילים את ה-build באמצעות קובץ ההגדרות שנוצר בשלב הקודם:
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORYמחליפים את ערכי ה-placeholder בקובץ התצורה שלמעלה בערכים הבאים:
-
CONFIG_FILE_PATHהוא הנתיב לקובץ התצורה של ה-build. -
SOURCE_DIRECTORYהוא הנתיב או כתובת ה-URL של קוד המקור. -
REGIONהוא אחד מאזורי הבנייה הנתמכים.
אם לא מציינים
CONFIG_FILE_PATHו-SOURCE_DIRECTORYבפקודהgcloud builds submit, Cloud Build מניח שקובץ ההגדרות וקוד המקור נמצאים בספריית העבודה הנוכחית.-
פריסה רציפה
אתם יכולים ליצור טריגרים של Cloud Build כדי לבצע אוטומציה של פריסת התוכנה שלכם בפונקציות Cloud Run. אתם יכולים להגדיר את הטריגרים כך שיבנו ויפרסו תמונות בכל פעם שתעדכנו את קוד המקור.
כדי להפוך את הפריסה לאוטומטית בפונקציות Cloud Run:
בשורש המאגר, מוסיפים קובץ הגדרות עם שלבים להפעלת הפקודה
gcloud functions deploy:YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIMEJSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }מחליפים את ערכי ה-placeholder בקובץ התצורה שלמעלה בערכים הבאים:
-
FUNCTION_NAMEהוא השם של פונקציות Cloud Run שאתם פורסים. אם מעדכנים פונקציה קיימת, הערך הזה צריך להיות זהה לשם הפונקציה שמעדכנים. -
FUNCTION_REGIONהוא האזור שבו אתם פורסים פונקציות Cloud Run. רשימת האזורים הנתמכים מופיעה במאמר מיקומים של פונקציות Cloud Run. -
--trigger-httpהוא סוג הטריגר של הפונקציה הזו, ובמקרה הזה מדובר בבקשת HTTP (webhook). -
RUNTIMEהוא זמן הריצה שבו הפונקציה תפעל.
-
יוצרים טריגר לפיתוח גרסת Build באמצעות קובץ ההגדרות שנוצר בשלב הקודם:
פותחים את הדף Triggers במסוף Google Cloud :
בוחרים את הפרויקט מהתפריט הנפתח של בורר הפרויקטים בחלק העליון של הדף.
לוחצים על Create Trigger (יצירת טריגר).
בשדה שם, מזינים שם לטריגר.
בקטע Region (אזור), בוחרים את האזור של הטריגר.
בקטע Event (אירוע), בוחרים את אירוע המאגר כדי להפעיל את הטריגר.
בקטע Source (מקור), בוחרים את המאגר ואת שם הענף או התג שיתחילו את הטריגר. מידע נוסף על הגדרת ההסתעפויות שייבנו באופן אוטומטי זמין במאמר בנושא יצירת טריגר לפיתוח גרסת Build.
בקטע Configuration (הגדרה), בוחרים באפשרות Cloud Build configuration file (YAML or JSON) (קובץ הגדרה של Cloud Build (YAML או JSON)).
בשדה Cloud Build configuration file location, מקלידים
cloudbuild.yamlאחרי/.לוחצים על יצירה כדי לשמור את טריגר לפיתוח גרסת Build.
בכל פעם שתדחפו קוד חדש למאגר, תפעילו באופן אוטומטי בנייה ופריסה בפונקציות Cloud Run.
מידע נוסף על יצירת טריגרים של Cloud Build זמין במאמר בנושא יצירה וניהול של טריגרים של Build.
המאמרים הבאים
- איך מבצעים פריסות כחולות-ירוקות ב-Compute Engine
- איך פורסים ב-Cloud Run
- איך פורסים ב-GKE
- איך פורסים ב-Firebase
- איך פורסים ב-App Engine
- איך פותרים בעיות שקשורות לבנייה