בדף הזה מוסבר איך להריץ משימות של 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
מחליפים את מה שכתוב בשדות הבאים:
- 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
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 לנקודת הקצה jobs של Cloud Run Admin API.POST
לדוגמה, שימוש ב-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 POST לנקודת הקצה jobs של Cloud Run Admin 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/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 .
מחיקת הרצת משימה
אתם יכולים למחוק הפעלה של משימה, גם אם היא מתבצעת כרגע. אם מוחקים הרצה, ההרצה מפסיקה. פרטים נוספים מופיעים במאמר בנושא מחיקת הפעלה של משימה.
המאמרים הבאים
אחרי שמריצים את העבודה, אפשר: