פריסת פונקציית 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