פריסת פונקציית Cloud Run (דור ראשון)
במדריך הזה מוסבר איך לפרוס פונקציית Cloud Run מדור ראשון (legacy) מקוד מקור. אם אתם יוצרים פונקציה חדשה, תוכלו להיעזר במאמר מדריך למתחילים לשימוש במסוף ב-Cloud Run.
במהלך תהליך הפריסה, קוד המקור והגדרות התצורה שלכם מגובים לקובץ אימג' שאפשר להריץ, ופונקציות Cloud Run מנהלות אותו באופן אוטומטי כדי לטפל בבקשות לפונקציה.
היסודות של פריסה
למשתמשים שפורסים פונקציות Cloud Run צריכה להיות הרשאת IAM מסוג Cloud Run functions Developer או הרשאה שכוללת את אותן הרשאות. אפשר לעיין גם במאמר הגדרות נוספות לפריסה.
כדי לפרוס פונקציה באמצעות ה-CLI של gcloud:
משתמשים בפקודה
gcloud functions deployכדי לפרוס פונקציה:gcloud functions deploy YOUR_FUNCTION_NAME \ [--gen2] \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS
הארגומנט הראשון,
YOUR_FUNCTION_NAME, הוא שם לפונקציה שפרסתם. שם הפונקציה חייב להתחיל באות ואחריה עד 62 אותיות, מספרים, מקפים או קווים תחתונים, ולהסתיים באות או במספר.הדגל
--gen2מציין שרוצים לפרוס לפונקציות Cloud Run. החל מספטמבר 2024, זו תהיה הגדרת ברירת המחדל. כדי לפרוס לדור הראשון, משתמשים בפקודה--no-gen2.הדגל
--regionמציין את האזור שבו הפונקציה תופעל. במאמר מיקומים מופיעה רשימה של האזורים שנתמכים על ידי פונקציות Cloud Run.הדגל
--runtimeמציין באיזו שפת זמן ריצה הפונקציה משתמשת. פונקציות Cloud Run תומכות בכמה סביבות ריצה. מידע נוסף זמין במאמר בנושא סביבות ריצה.הדגל
--sourceמציין את המיקום של קוד המקור של הפונקציה. פרטים נוספים מופיעים בסעיפים הבאים:הדגל
--entry-pointמציין את נקודת הכניסה לפונקציה בקוד המקור. זה הקוד שיופעל כשהפונקציה תפעל. הערך של הדגל הזה חייב להיות שם של פונקציה או שם מחלקה מלא שקיים בקוד המקור. מידע נוסף זמין במאמר נקודת כניסה לפונקציה.כדי לציין את הטריגר של הפונקציה, צריך להשתמש בדגלים נוספים (שמסומנים כ-
TRIGGER_FLAGSלמעלה), בהתאם לטריגר שרוצים להשתמש בו:דגלי טריגר תיאור הטריגר --trigger-httpמפעילים את הפונקציה באמצעות בקשת HTTP(S). מידע נוסף זמין במאמר בנושא טריגרים של HTTP. --trigger-topic=YOUR_PUBSUB_TOPICהפעלת הפונקציה כשמתפרסמת הודעה בנושא Pub/Sub שצוין. מידע נוסף זמין במאמר בנושא טריגרים ב-Pub/Sub. --trigger-bucket=YOUR_STORAGE_BUCKETהפעלת הפונקציה כשיוצרים אובייקט או מחליפים אובייקט בקטגוריית Cloud Storage שצוינה. מידע נוסף מופיע במאמר בנושא טריגרים של Cloud Storage. --trigger-event=EVENT_TYPE
[--trigger-resource=RESOURCE]הפעלת הפונקציה כשמתרחש האירוע שצוין. חובה לציין משאב עבור סוגים מסוימים של אירועים. מידע נוסף זמין במאמר בנושא טריגרים שנתמכים בפונקציות Cloud Run (דור ראשון). אפשר לציין אפשרויות נוספות של הגדרה, רשת ואבטחה כשפורסים פונקציה.
במאמרי העזרה של
gcloud functions deployמופיע מידע מלא על פקודת הפריסה והדגלים שלה.דוגמאות לפקודות פריסה מופיעות במאמר בנושא דוגמאות לפקודות בשורת הפקודה.
פריסה מהמחשב המקומי
בקטע הזה מוסבר איך להשתמש ב-CLI של gcloud כדי לפרוס פונקציה מקוד מקור שנמצא במחשב המקומי.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
פועלים לפי ההוראות לפריסה שמופיעות למעלה באמצעות הפקודה
gcloud functions deploy.עבור הדגל
--source, מציינים נתיב מקומי במערכת קבצים לספריית השורש של קוד המקור של הפונקציה – ראו מבנה ספריית קובצי המקור. אם לא מציינים את הדגל הזה, נעשה שימוש בספריית העבודה הנוכחית.אפשר גם להשתמש בדגל
--stage-bucketכדי לציין קטגוריה של Cloud Storage שאליה יועלה קוד המקור כחלק מהפריסה.במהלך ההעלאה של קוד המקור, פונקציות Cloud Run מוציאות קבצים מיותרים באמצעות הקובץ
.gcloudignore.-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
פועלים לפי ההוראות לפריסה שמופיעות למעלה באמצעות הפקודה
gcloud functions deploy.בפרמטר
--source, מציינים נתיב ב-Cloud Storage שמתחיל ב-gs://. האובייקט בנתיב חייב להיות קובץ ZIP שמכיל את קוד המקור של הפונקציה. קובצי המקור של הפונקציה צריכים להיות בתיקיית השורש של קובץ ה-ZIP. אפשר לעיין במבנה של ספריית קובצי המקור.- הפונקציה משתמשת ב-Node.js 22.
- קוד המקור נמצא בספריית העבודה הנוכחית (
.). - נקודת הכניסה בקוד נקראת
myHttpFunction. - הפונקציה מטפלת באירועים של פרסום הודעות ב-Pub/Sub.
- הפונקציה משתמשת ב-Python 3.12.
- קוד המקור נמצא ב-Cloud Storage בנתיב
gs://my-bucket/my_function_source.zip. - נקודת הכניסה בקוד נקראת
pubsub_handler. - הפונקציה מטפלת באירועי מחיקה של אובייקטים ב-Cloud Storage.
- הפונקציה משתמשת ב-Java 17.
- קוד המקור נמצא באופן מקומי בנתיב
./functions/storage-function. - נקודת הכניסה בקוד נקראת
myproject.StorageFunction. - פרטים על טריגרים של פונקציות Cloud Run
- מידע נוסף על תהליך ה-build של פונקציות Cloud Run
- אפשרויות הגדרה נוספות של פונקציות Cloud Run.
- מידע על אבטחת פונקציות Cloud Run
פריסה מ-Cloud Storage
בקטע הזה מוסבר איך להשתמש ב-CLI של gcloud כדי לפרוס פונקציה מקוד מקור שנמצא בקטגוריה של Cloud Storage. קוד המקור צריך להיות ארוז כקובץ ZIP.
כדי שפונקציות Cloud Run יוכלו לקרוא מקטגוריה של Cloud Storage, צריך לתת את ההרשאה storage.objects.get לחשבון שמבצע את הפריסה.
מידע על שליטה בגישה לקטגוריות מופיע במאמר שימוש בהרשאות IAM במסמכי התיעוד של Cloud Storage.
עם ההרשאה הזו, אפשר עכשיו לפרוס פונקציה מ-Cloud Storage:
דוגמאות לשורת פקודה
בקטע הזה מוצגות פקודות פריסה לכמה תרחישי פריסה לדוגמה.
במאמר טריגרים של פונקציות Cloud Run מוסבר על סוגים שונים של טריגרים שנתמכים בפונקציות Cloud Run.
פונקציית HTTP מקוד מקור מקומי
נניח שיש לכם פונקציית HTTP באופן הבא:
כדי לפרוס את הפונקציה ב-Cloud Run Functions בשם my-http-function באזור us-central1, משתמשים בפקודה הבאה:
gcloud functions deploy my-http-function \
--no-gen2 \
--region=us-central1 \
--runtime=nodejs22 \
--source=. \
--entry-point=myHttpFunction \
--trigger-http
פונקציית Pub/Sub מקוד מקור ב-Cloud Storage
נניח שיש לכם פונקציה מבוססת-אירועים באופן הבא:
כדי לפרוס את הפונקציה ב-Cloud Run Functions בשם my-pubsub-function באזור europe-west1, ולהגדיר שהפונקציה תופעל על ידי הודעות בנושא Pub/Sub my-topic, משתמשים בפקודה הבאה:
gcloud functions deploy my-pubsub-function \
--no-gen2 \
--region=europe-west1 \
--runtime=python312 \
--source=gs://my-bucket/my_function_source.zip \
--entry-point=pubsub_handler \
--trigger-topic=my-topic
פונקציה של Cloud Storage מקוד מקור מקומי
נניח שיש לכם פונקציה מבוססת-אירועים באופן הבא:
כדי לפרוס את הפונקציה לפונקציות Cloud Run בשם my-storage-function באזור asia-northeast1, וליצור טריגר לפונקציה באמצעות אירועים בקטגוריה של Cloud Storage my-bucket, משתמשים בפקודה הבאה:
gcloud functions deploy my-storage-function \
--no-gen2 \
--region=asia-northeast1 \
--runtime=java17 \
--source=./functions/storage-function \
--entry-point=myproject.StorageFunction \
--trigger-resource=gs://my-bucket \
--trigger-event=google.storage.object.delete