פריסת פונקציית Cloud Run (דור ראשון)
במדריך הזה מוסבר איך לפרוס פונקציה מדור ראשון (legacy) של Cloud Run מקוד מקור. אם אתם יוצרים פונקציה חדשה, תוכלו להיעזר במאמר מדריך למתחילים לשימוש במסוף ב-Cloud Run.
תהליך הפריסה לוקח את קוד המקור ואת הגדרות התצורה ויוצר אימג' שאפשר להריץ, שפונקציות Cloud Run מנהלות באופן אוטומטי כדי לטפל בבקשות לפונקציה.
היסודות של פריסה
למשתמשים שפורסים פונקציות Cloud Run צריכה להיות הרשאת IAM מפתח פונקציות Cloud Run או הרשאה שכוללת את אותן הרשאות. אפשר לעיין גם במאמר הגדרות נוספות לפריסה.
כדי לפרוס פונקציה באמצעות ה-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 כדי לפרוס פונקציה מקוד מקור שנמצא במחשב המקומי.
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
פועלים לפי ההוראות לפריסה שמופיעות למעלה באמצעות הפקודה
gcloud functions deploy.לדגל
--source, מציינים נתיב מקומי במערכת הקבצים לספריית שורש של קוד המקור של הפונקציה – ראו מבנה ספריית קובצי המקור. אם לא מציינים את הדגל הזה, נעשה שימוש בספריית העבודה הנוכחית.אפשר גם להשתמש בדגל
--stage-bucketכדי לציין קטגוריה של Cloud Storage שאליה תועלה קוד המקור כחלק מהפריסה.במהלך ההעלאה של קוד המקור, פונקציות Cloud Run מוציאות קבצים מיותרים באמצעות הקובץ
.gcloudignore.
פריסה מ-Cloud Storage
בקטע הזה מוסבר איך להשתמש ב-CLI של gcloud כדי לפרוס פונקציה מקוד מקור שנמצא בקטגוריה של Cloud Storage. קוד המקור צריך להיות ארוז כקובץ ZIP.
כדי שפונקציות של Cloud Run יוכלו לקרוא ממאגר Cloud Storage, צריך לתת את ההרשאה storage.objects.get לחשבון שמבצע את הפריסה.
מידע על שליטה בגישה לקטגוריות מופיע במאמר שימוש בהרשאות IAM במסמכי התיעוד של Cloud Storage.
עם ההרשאה הזו, אפשר עכשיו לפרוס פונקציה מ-Cloud Storage:
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
פועלים לפי ההוראות לפריסה שמופיעות למעלה באמצעות הפקודה
gcloud functions deploy.בפרמטר
--source, מציינים נתיב ב-Cloud Storage שמתחיל ב-gs://. האובייקט בנתיב חייב להיות קובץ ZIP שמכיל את קוד המקור של הפונקציה. קובצי המקור של הפונקציה צריכים להיות בתיקיית השורש של קובץ ה-ZIP – ראו מבנה של ספריית קובצי המקור.
דוגמאות לשורת פקודה
בקטע הזה מוצגות פקודות פריסה לכמה תרחישי פריסה לדוגמה.
במאמר טריגרים של פונקציות Cloud Run מוסבר על סוגים שונים של טריגרים שנתמכים בפונקציות Cloud Run.
פונקציית HTTP מקוד מקור מקומי
נניח שיש לכם פונקציית HTTP כפי שמוצג בהמשך:
- הפונקציה משתמשת ב-Node.js 22.
- קוד המקור נמצא בספריית העבודה הנוכחית (
.). - נקודת הכניסה בקוד נקראת
myHttpFunction.
כדי לפרוס את הפונקציה ב-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
נניח שיש לכם פונקציה מבוססת-אירועים באופן הבא:
- הפונקציה מטפלת באירועים של פרסום הודעות ב-Pub/Sub.
- הפונקציה משתמשת ב-Python 3.12.
- קוד המקור נמצא ב-Cloud Storage בנתיב
gs://my-bucket/my_function_source.zip. - נקודת הכניסה בקוד נקראת
pubsub_handler.
כדי לפרוס את הפונקציה ב-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 Storage.
- הפונקציה משתמשת ב-Java 17.
- קוד המקור נמצא באופן מקומי בנתיב
./functions/storage-function. - נקודת הכניסה בקוד נקראת
myproject.StorageFunction.
כדי לפרוס את הפונקציה לפונקציות 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
השלבים הבאים
- פרטים על טריגרים של פונקציות Cloud Run
- מידע על תהליך build של פונקציות Cloud Run
- אפשרויות הגדרה נוספות של פונקציות Cloud Run.
- מידע נוסף על אבטחת פונקציות Cloud Run