הפעלת משימות

בדף הזה מוסבר איך להריץ משימות של 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.

המסוף

כדי להריץ משימה:

  1. נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :

    כניסה לדף Cloud Run jobs

  2. מאתרים את המשרה שמעניינת אתכם.

  3. לוחצים על המשרה כדי להציג את דף הפרטים שלה.

  4. לוחצים על 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 .

הפעלת עבודות באופן מיידי

המסוף

כדי להריץ עבודה באופן מיידי:

  1. נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :

    כניסה לדף Cloud Run jobs

  2. אם יש לכם משימה קיימת, לוחצים על המשימה כדי להציג את דף הפרטים שלה, ואז בוחרים באפשרות הצגה ועריכה של הגדרות המשימה. אם יוצרים משימה חדשה, בוחרים באפשרות Deploy container (פריסת מאגר תגים).

  3. עוברים לחלק התחתון של הדף ומסמנים את התיבה הפעלת המשימה באופן מיידי לפני שיוצרים או מעדכנים את המשימה.

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.

  1. אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. מגדירים את מאפיין 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 תווים.

    אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.

  3. יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:

    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: השם של המשימה שרוצים ליצור.

שינוי הגדרות של משימה להרצה ספציפית

אתם יכולים לשנות את הארגומנטים, משתני הסביבה, מספר המשימות וזמן הקצוב לתפוגה של המשימה שהוגדרו לעבודה כשאתם מריצים עבודה. כדי לעשות את זה, אתם צריכים להגדיר את הפרמטרים האלה כשאתם מתחילים הרצה חדשה של עבודה. הפרמטרים שאתם מציינים משפיעים רק על ההרצה הזו ולא על הרצות עתידיות, כי הגדרת העבודה הבסיסית נשארת ללא שינוי.

דוגמאות לתרחישי שימוש נפוצים:

  • אתם מריצים את העבודה באופן פרוגרמטי מהקוד, ורוצים לשנות את הארגומנטים או את משתני הסביבה, למשל כדי לציין לעבודה איפה נמצאים נתוני הקלט להרצה הזו.
  • יש לכם משימה שבה כל פעולה מיועדת לעיבוד של נתון קלט אחד בלבד. אתם רוצים לשנות את מספר המשימות בהתאם למספר הקלטים שצריך לעבד.
  • משך ההרצה של העבודה משתנה בין הרצות. אתם רוצים לבטל את הגדרת הזמן הקצוב לתפוגה של המשימה על סמך זמן הריצה הצפוי של העבודה.

כדי לשנות את הגדרות העבודה להרצה מסוימת:

המסוף

  1. כניסה לדף Cloud Run jobs

  2. מאתרים את המשרה שמעניינת אתכם.

  3. לוחצים על המשרה כדי להציג את דף הפרטים שלה.

  4. לוחצים על החץ להרחבה שלצד הלחצן עריכה ואז על הפעלה עם הגדרות ברירת מחדל שמוחלפות כדי להציג את הטופס הפעלת משימה עם הגדרות ברירת מחדל שמוחלפות.

    תמונה

  5. משנים את הארגומנטים, משתני הסביבה, מספר המשימות ו/או את הגדרת הזמן הקצוב לתפוגה של המשימה בהרצה הזו לפי הצורך, ואז לוחצים על הפעלה.

gcloud

משתמשים בפקודה:

gcloud run jobs execute JOB_NAME \
     --args ARGS \
     --update-env-vars KEY=VALUE>,KEY_N=VALUE_N \
     --tasks TASKS \
     --task-timeout 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

מחליפים את מה שכתוב בשדות הבאים:

ביטול ההרצה של המשימה

.

כדי להפסיק הפעלה של משימת Cloud Run שפועלת כרגע, משתמשים בתכונה cancel. ביטול של הרצת עבודה מפסיק את ההרצה הנוכחית של העבודה. לביצועים שבוטלו יש סטטוס בוטל. עדיין תוכלו לראות את ההפעלה, כולל נתוני ההגדרה, היומנים ונתוני המעקב.

ביטול של הרצת משימה לא מבטל את החיובים על השימוש במשימות של Cloud Run בזמן שהמשימה רצה.

כדי לבטל הרצה:

המסוף

  1. כניסה לדף Cloud Run jobs

  2. לוחצים על המשרה כדי לפתוח את חלונית פרטי המשרה.

  3. בוחרים את ההרצה של העבודה שרוצים לבטל.

  4. בתפריט פעולות, לוחצים על סמל האפשרויות הנוספות ואז על ביטול.

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 .

מחיקת הרצת משימה

אתם יכולים למחוק הפעלה של משימה, גם אם היא מתבצעת כרגע. אם מוחקים הרצה, ההרצה מפסיקה. פרטים נוספים מופיעים במאמר בנושא מחיקת הפעלה של משימה.

המאמרים הבאים

אחרי שמריצים את העבודה, אפשר: