בדף הזה מוסבר איך להריץ משימות של Cloud Run. כשמריצים משימה, נוצר ביצוע משימה שבו כל המשימות צריכות לפעול עד הסוף בהצלחה כדי שביצוע המשימה יצליח. הפעלות של משימות כותבות יומנים ל-Cloud Logging ושולחות נתוני מעקב ל-Cloud Monitoring.
בנוסף לתכונות הרישום האלה, אפשר גם לראות את פרטי ההרצה של המשימה בחלונית פרטי ההרצה,לגבי 1, 000 ההרצות האחרונות של המשימה וכל ההרצות שהתרחשו ב-7 הימים האחרונים. פרטי הביצוע הישנים מוסרים ולא מוצגים יותר בחלונית פרטי הביצוע. עם זאת, נתוני היומנים והמעקב של הרצות ישנות יותר עדיין זמינים ב-Cloud Logging וב-Cloud Monitoring, בכפוף למדיניות שמירת הנתונים של המוצרים האלה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לפעולות שמתוארות בדף הזה, צריך לבקש מהאדמין להקצות לכם אחד מתפקידי ה-IAM הבאים בעבודת Cloud Run:
- כדי להפעיל משימות באמצעות Google Cloud CLI: Cloud Run Invoker (
roles/run.invoker) במשימה ב-Cloud Run - כדי להריץ משימות באמצעות Google Cloud המסוף, כדי לשנות את ההגדרות של המשימות או כדי לבטל את ההרצה של המשימות: Cloud Run Developer (
roles/run.developer) במשימה ב-Cloud Run
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם עבודת Cloud Run שלכם מתקשרת עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
הפעלת משימות
אפשר להריץ עבודות באמצעות מסוף Google Cloud , Google Cloud CLI, ספריות לקוח או API בארכיטקטורת REST.
המסוף
כדי להריץ משימה:
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
מאתרים את המשרה שמעניינת אתכם.
לוחצים על המשרה כדי להציג את דף הפרטים שלה.
לוחצים על Execute.
gcloud
כדי להריץ משימה קיימת:
gcloud run jobs execute JOB_NAME
אם רוצים שהפקודה תחכה עד שהביצוע יסתיים, משתמשים ב
gcloud run jobs execute JOB_NAME --wait --region=REGION
כדי לעקוב אחרי יומני הביצוע מיד אחרי ההפעלה, משתמשים בפקודה:
gcloud beta run jobs execute JOB_NAME --tail --region=REGION
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: שם המשימה.
- REGION: האזור שבו אפשר למצוא את המשאב. לדוגמה,
europe-west1. אפשר גם להגדיר את המאפייןrun/region.
ספריות לקוח
כדי להריץ משימה קיימת מקוד:
API בארכיטקטורת REST
כדי להריץ משימה קיימת, שולחים בקשת HTTP POST אל ה-method jobs.run של ה-API.
לדוגמה, באמצעות curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run
מחליפים את מה שכתוב בשדות הבאים:
- ACCESS_TOKEN: אסימון גישה תקין לחשבון שיש לו הרשאות IAM להפעלת עבודה.
לדוגמה, אם אתם מחוברים ל-gcloud, אתם יכולים לאחזר אסימון גישה באמצעות
gcloud auth print-access-token. מתוך מופע של קונטיינר ב-Cloud Run, אפשר לאחזר אסימון גישה באמצעות שרת המטא-נתונים של מופע הקונטיינר. - JOB_NAME: שם המשימה.
- REGION: Google Cloud האזור של המשימה.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
הפעלת עבודות באופן מיידי
המסוף
כדי להריץ משימה באופן מיידי:
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
אם יש לכם משימה קיימת, לוחצים על המשימה כדי להציג את דף פרטי המשימה, ואז בוחרים באפשרות הצגה ועריכה של הגדרת המשימה. אם יוצרים משימה חדשה, בוחרים באפשרות Deploy container (פריסת קונטיינר).
עוברים לחלק התחתון של הדף ומסמנים את התיבה הפעלת המשימה באופן מיידי לפני שיוצרים או מעדכנים את המשימה.
gcloud
אפשר לציין את הדגל --execute-now
כשיוצרים או מעדכנים משימה:
כדי ליצור משרה:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL \ --execute-now \ --region=REGION
עדכון משימה:
gcloud run jobs update JOB_NAME --execute-now --region=REGION
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: שם המשימה.
- IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - REGION: האזור שבו אפשר למצוא את המשאב. לדוגמה,
europe-west1.
YAML
אפשר לשמור את מפרט העבודה בקובץ YAML ואז לפרוס אותו באמצעות ה-CLI של gcloud.
אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB_NAME --format export > job.yaml
מגדירים את המאפיין
startExecutionTokenכמו שמוצג:apiVersion: run.googleapis.com/v2 kind: Job metadata: name: JOB_NAME spec: template: spec: template: spec: containers: - image: IMAGE_URL startExecutionToken: START_EXECUTION_SUFFIX
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: השם של המשימה ב-Cloud Run. שמות המשרות צריכים להיות באורך של עד 49 תווים, והם צריכים להיות ייחודיים לכל אזור ולכל פרויקט.
- IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - START_EXECUTION_SUFFIX: מחרוזת ייחודית שמשמשת כסיומת ליצירת הרצה חדשה. הסטטוס של העבודה ישתנה ל'מוכנה' אחרי שההפעלה תתחיל בהצלחה. האורך של שם המשימה והאסימון יחד צריך להיות קצר מ-63 תווים.
אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.
יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:
gcloud run jobs replace job.yaml
אם קיים קובץ
job.yaml, הפקודהgcloud run jobs replaceמשתמשת בו כברירת מחדל.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_job בתצורת Terraform:resource "google_cloud_run_v2_job" "default" {
name = "cloudrun-job"
location = "REGION"
deletion_protection = false
start_execution_token = "START_EXECUTION_SUFFIX"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
}
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- REGION: Google Cloud האזור. לדוגמה, europe-west1.
- START_EXECUTION_SUFFIX: מחרוזת ייחודית שמשמשת כסיומת ליצירת הרצה חדשה. הסטטוס של העבודה ישתנה ל'מוכן' כשההפעלה תתחיל בהצלחה. האורך הכולל של שם המשרה והאסימון צריך להיות קטן מ-63 תווים.
ספריות לקוח
כדי להריץ עבודה באופן מיידי מקוד באמצעות ספריות לקוח של Cloud:
API בארכיטקטורת REST
כדי להריץ משימות מיד אחרי היצירה שלהן, שולחים בקשת HTTP POST לנקודת הקצה jobs של Cloud Run Admin API.
לדוגמה, באמצעות curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '{ "template": { "template": { "containers": { "image": "IMAGE_URL" } } }, "startExecutionToken": "START_EXECUTION_SUFFIX" }' \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs?jobId=JOB_NAME"
מחליפים את מה שכתוב בשדות הבאים:
- ACCESS_TOKEN: אסימון גישה תקף לחשבון שיש לו הרשאות IAM ליצירת משימות.
לדוגמה, אם אתם מחוברים ל-gcloud, אתם יכולים לאחזר אסימון גישה באמצעות
gcloud auth print-access-token. מתוך מופע של קונטיינר ב-Cloud Run, אפשר לאחזר אסימון גישה באמצעות שרת המטא-נתונים של מופע הקונטיינר. - IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - START_EXECUTION_SUFFIX: מחרוזת ייחודית שמשמשת כסיומת ליצירת הרצה חדשה. הסטטוס של העבודה ישתנה ל'מוכן' כשההפעלה תתחיל בהצלחה. האורך הכולל של שם המשרה והאסימון צריך להיות קטן מ-63 תווים.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- REGION: Google Cloud האזור של המשימה.
- JOB_NAME: השם של המשימה שרוצים ליצור.
שינוי הגדרות של משימה להרצה ספציפית
אתם יכולים לשנות את הארגומנטים, משתני הסביבה, מספר המשימות וזמן הקצוב לתפוגה של המשימה שהוגדרו לעבודה כשאתם מריצים עבודה. כדי לעשות את זה, אתם צריכים להגדיר את הפרמטרים האלה כשאתם מתחילים הרצה חדשה של עבודה. הפרמטרים שאתם מציינים משפיעים רק על ההפעלה הזו ולא על הפעלות עתידיות, כי הגדרת העבודה הבסיסית נשארת ללא שינוי.
דוגמאות לתרחישי שימוש נפוצים:
- אתם מריצים את העבודה באופן פרוגרמטי מהקוד שלכם, ורוצים לשנות את הארגומנטים או את משתני הסביבה, למשל כדי לציין לעבודה איפה נמצאים נתוני הקלט להרצה הזו.
- יש לכם משימה שבה כל פעולה מיועדת לעיבוד של נתון קלט אחד בלבד. אתם רוצים לשנות את מספר המשימות בהתאם למספר הקלטים שצריך לעבד.
- משך ההרצה של העבודה משתנה בין הרצות. אתם רוצים לבטל את הגדרת הזמן הקצוב לתפוגה של המשימה על סמך זמן הריצה הצפוי של העבודה.
כדי לעקוף את הגדרות העבודה בהרצה:
המסוף
מאתרים את המשרה שמעניינת אתכם.
לוחצים על המשרה כדי להציג את דף הפרטים שלה.
לוחצים על חץ ההרחבה שלצד הלחצן עריכה ואז על הפעלה עם הגדרות ברירת מחדל כדי להציג את הטופס הפעלת משימה עם הגדרות ברירת מחדל.
משנים את הארגומנטים, משתני הסביבה, מספר המשימות ו/או את הגדרת הזמן הקצוב לתפוגה של המשימה בהרצה הזו לפי הצורך, ואז לוחצים על הפעלה.
gcloud
משתמשים בפקודה:
gcloud run jobs execute JOB_NAME \ --args ARGS \ --update-env-vars KEY=VALUE>,KEY_N=VALUE_N \ --tasks TASKS \ --task-timeout TIMEOUT
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: שם המשימה.
- ARGS: הארגומנטים של המשימה.
- זוגות של KEY ו-VALUE: משתני הסביבה.
- TASKS: מספר המשימות.
- TIMEOUT: הזמן הקצוב לתפוגת משימה.
ספריות לקוח
כדי להריץ משימה קיימת מקוד, תוך החלפת הגדרות המשימה:
API בארכיטקטורת REST
כדי לשנות את הגדרות העבודה של עבודה קיימת, שולחים בקשת HTTP POST לנקודת הקצה של Cloud Run Admin API jobs
לדוגמה, באמצעות curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '{"overrides": {"containerOverrides": [{"args": ["ARGS"], "env": [{"name": "KEY", "value": "VALUE"}]}], "taskCount": TASKS, "timeout": "TIMEOUT" }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run
מחליפים את מה שכתוב בשדות הבאים:
- ACCESS_TOKEN: אסימון גישה תקף לחשבון שיש לו הרשאות IAM להפעלת שינויים בהגדרות של משימות.
לדוגמה, אם אתם מחוברים ל-gcloud, אתם יכולים לאחזר אסימון גישה באמצעות
gcloud auth print-access-token. מתוך מופע של קונטיינר ב-Cloud Run, אפשר לאחזר אסימון גישה באמצעות שרת המטא-נתונים של מופע הקונטיינר. - JOB_NAME: שם המשימה.
- ARGS: job arguments.
- זוגות של KEY ו-VALUE: משתני סביבה.
- TASKS: מספר המשימות.
- TIMEOUT: הזמן הקצוב לתפוגת משימה.
- REGION: Google Cloud האזור של המשימה.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
ביטול ההרצה של המשימה
כדי להפסיק הפעלה של משימת Cloud Run שפועלת כרגע, משתמשים בתכונה cancel. ביטול של הרצת עבודה מפסיק את הרצת העבודה הנוכחית. לביצועים שבוטלו יש סטטוס בוטל. עדיין תוכלו לראות את ההפעלה, כולל נתוני ההגדרה, היומנים ונתוני המעקב שלה.
ביטול של הרצת משימה לא מבטל את החיובים על השימוש במשימות ב-Cloud Run בזמן שהמשימה רצה.
כדי לבטל הרצה:
המסוף
לוחצים על המשרה כדי לפתוח את חלונית פרטי המשרה.
בוחרים את הפעלת העבודה שרוצים לבטל.
בתפריט פעולות, לוחצים על סמל האפשרויות הנוספות ואז על ביטול.
gcloud
משתמשים בפקודה:
gcloud run jobs executions cancel EXECUTION_NAME
מחליפים את EXECUTION_NAME בשם ההפעלה.
הפקודה הזו דורשת אישור, לכן צריך להזין y כדי לאשר.
ספריות לקוח
כדי לבטל הרצת משימה מקוד:
API בארכיטקטורת REST
כדי לבטל הפעלה של משימה, שולחים בקשת HTTP לנקודת הקצה של Cloud Run Admin API jobsPOST
לדוגמה, באמצעות curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME/executions/EXECUTION-NAME:cancel
מחליפים את מה שכתוב בשדות הבאים:
- ACCESS_TOKEN: אסימון גישה תקף לחשבון שיש לו הרשאות IAM לביטול של הפעלות של משימות.
לדוגמה, אם אתם מחוברים ל-gcloud, אתם יכולים לאחזר אסימון גישה באמצעות
gcloud auth print-access-token. מתוך מופע של קונטיינר ב-Cloud Run, אפשר לאחזר אסימון גישה באמצעות שרת המטא-נתונים של מופע הקונטיינר. - JOB_NAME: שם המשימה.
- EXECUTION-NAME: השם של הפעלת המשימה.
- REGION: Google Cloud האזור של המשימה.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
מחיקת הרצת משימה
אתם יכולים למחוק הרצה של משימה, גם אם היא מתבצעת כרגע. אם מוחקים הפעלה, ההפעלה מפסיקה לפעול. פרטים נוספים מופיעים במאמר בנושא מחיקת הרצה של משימה.
המאמרים הבאים
אחרי שמריצים את העבודה, אפשר: