הגדרת מאגרי תגים למשימות

בדף הזה מוסבר איך להגדיר את פקודת נקודת הכניסה ואת הארגומנטים של משימה ב-Cloud Run.

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

שימו לב: כל קונטיינר יכול להכיל עד 1,000 ארגומנטים לכל משימה.

בדף הזה מוסבר איך להגדיר את הפקודה, הארגומנטים וסדר ההתחלה של קונטיינרים בעבודות של Cloud Run.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להגדרת משימות של Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם עבודת Cloud Run שלכם מתקשרת עםCloud de Confiance ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.

הגדרת נקודת הכניסה והארגומנטים

אפשר להגדיר את נקודת הכניסה והארגומנטים של הפקודה למשימות באמצעותCloud de Confiance המסוף, ה-CLI של gcloud,‏ YAML או Terraform:

המסוף

  1. במסוף Cloud de Confiance by S3NS , נכנסים לדף Cloud Run:

    כניסה ל-Cloud Run

  2. בתפריט הניווט של Cloud Run, לוחצים על Jobs (משימות):

    1. אם יוצרים משימה חדשה, לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוני של המשימה.

    2. אם אתם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת המשימה).

  3. לוחצים על Containers, Connections, Security (מאגרי תגים, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.

  4. מציינים את הפקודה שרוצים שהקונטיינר יריץ, אם היא לא הפקודה שהוגדרה בקונטיינר.

  5. אופציונלי: מציינים את הארגומנטים לפקודת נקודת הכניסה.

  6. לוחצים על יצירה או על עדכון.

gcloud

  • כדי להגדיר את פקודת ההתחלה ואת הארגומנטים למשימה חדשה, מריצים את הפקודה הבאה:

    gcloud run jobs create JOB --image IMAGE_URL --command COMMAND --args ARG1,ARG_N

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

    • ‫JOB: השם של המשימה ב-Cloud Run.
    • ‫IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה us-docker.pkg.dev/cloudrun/container/job:latest.
    • ‫COMMAND: הפקודה שמאגר התגים יתחיל איתה אם לא משתמשים בפקודה שמוגדרת כברירת מחדל.
    • ‫ARG1: הארגומנט שאתם שולחים לפקודת הקונטיינר. אם יש יותר מארגומנט אחד, צריך להשתמש ברשימה מופרדת בפסיקים, למשל: --args="arg1", "arg2", "arg3". אם הארגומנטים מכילים פסיקים או תווים מיוחדים, כדאי לעיין במאמר שימוש בסימני שוויון או בפסיקים בארגומנטים.
  • כדי לעדכן את הפקודה ואת הארגומנטים של משימה קיימת, מריצים את הפקודה הבאה:

    gcloud run jobs update JOB --command COMMAND --args ARG1,ARG_N 
  • כדי לנקות את הפקודות והארגומנטים של נקודת הכניסה, מריצים את הפקודה הבאה:

    gcloud run jobs update JOB --command "" --args "" 

YAML

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

    gcloud run jobs describe JOB --format export > job.yaml
  2. מעדכנים את המאפיינים args: ו-command:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                args:
                - ARG1'
                - ARG_N
                command:
                - COMMAND
                

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

    • ‫JOB: השם של המשימה ב-Cloud Run.
    • ‫IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה us-docker.pkg.dev/cloudrun/container/job:latest.
    • ‫ARG1: הארגומנט שאתם שולחים לפקודת הקונטיינר. אפשר לציין ארגומנטים נוספים, כל אחד בשורה נפרדת. אם הארגומנטים מכילים פסיקים או תווים מיוחדים, כדאי לעיין במאמר בנושא שימוש בסימני שוויון או בפסיקים בארגומנטים.
    • ‫COMMAND: הפקודה שמאגר התגים צריך להתחיל איתה אם לא משתמשים בפקודה שמוגדרת כברירת מחדל.
  3. מעדכנים את ההגדרה הקיימת של העבודה:

    gcloud run jobs replace job.yaml

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

מוסיפים את השורות הבאות למשאב google_cloud_run_v2_job בתצורת Terraform:
resource "google_cloud_run_v2_job" "default" {
 name     = "JOB"
 location = "REGION"

 template {
   template {
     containers {
       image = "us-docker.pkg.dev/cloudrun/container/job"
       command = ["COMMAND"]
       args = ["ARG1", "ARG_N"]
     }
   }
 }
}

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

  • ‫JOB: השם של המשימה ב-Cloud Run.
  • ‫REGION: Cloud de Confiance האזור. לדוגמה: europe-west1.
  • ‫COMMAND: הפקודה שהקונטיינר יתחיל איתה אם לא משתמשים בפקודה שמוגדרת כברירת מחדל.
  • ‫ARG1: הארגומנט שאתם שולחים לפקודת הקונטיינר. אפשר גם לציין ארגומנטים נוספים. אם הארגומנטים מכילים פסיקים או תווים מיוחדים, כדאי לעיין במאמר שימוש בסימני שוויון או בפסיקים בארגומנטים.

שימוש בסימני שוויון או בפסיקים בארגומנטים

אם משתמשים בסימני שוויון בארגומנטים, צריך לספק אותם בפורמט הבא:

gcloud run deploy  \
  --args="--repo-allowlist=github.com/example/example_demo"

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

הגדרת ספריית עבודה

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

אפשר להגדיר ספריית עבודה באמצעות ה-CLI של gcloud,‏ YAML או Terraform:

gcloud

כדי לעדכן את ספריית העבודה של משימה קיימת, מריצים את הפקודה הבאה:

gcloud run jobs update JOB --workdir WORKING_DIR

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

  • ‫JOB: השם של המשימה ב-Cloud Run.
  • ‫WORKING_DIR: הספרייה הפעילה של הקונטיינר. אם לא מציינים ערך, המערכת משתמשת בערך ברירת המחדל של תמונת הקונטיינר. כדי לאפס את השדה הזה לערך ברירת המחדל שלו, צריך להעביר מחרוזת ריקה "".

כדי לציין את ספריית העבודה כשיוצרים משימה, מריצים את הפקודה הבאה:

gcloud run jobs create JOB --image IMAGE_URL --workdir WORKING_DIR

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

  • ‫JOB: השם של המשימה ב-Cloud Run.
  • ‫IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה us-docker.pkg.dev/cloudrun/container/job:latest.
  • ‫WORKING_DIR: הספרייה הפעילה של הקונטיינר. אם לא מציינים ערך, המערכת משתמשת בערך ברירת המחדל של תמונת מאגר התגים. כדי לאפס את השדה הזה לברירת המחדל, מעבירים מחרוזת ריקה "".

YAML

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

    gcloud run jobs describe JOB --format export > job.yaml
  2. מעדכנים את המאפיין workingDir::

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
     name: JOB
    spec:
     template:
       spec:
         template:
           spec:
             containers:
             - image: IMAGE_URL
               workingDir: WORKING_DIR
               

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

    • ‫JOB: השם של המשימה ב-Cloud Run.
    • ‫IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה us-docker.pkg.dev/cloudrun/container/job:latest.
    • ‫WORKING_DIR (אופציונלי): ספריית העבודה של הקונטיינר. אם לא מציינים ערך, המערכת תשתמש בערך ברירת המחדל של זמן הריצה של הקונטיינר, שאולי מוגדר בקובץ אימג' של קונטיינר.
  3. מעדכנים את ההגדרה הקיימת של העבודה:

    gcloud run jobs replace job.yaml

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

מוסיפים את השורות הבאות למשאב google_cloud_run_v2_job בתצורת Terraform:
resource "google_cloud_run_v2_job" "default" {
 name     = "JOB"
 location = "REGION"

 template {
   template {
     containers {
       image = "us-docker.pkg.dev/cloudrun/container/job"
       working_dir = WORKING_DIR
     }
   }
 }
}

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

  • ‫JOB: השם של המשימה ב-Cloud Run.
  • ‫REGION: Cloud de Confiance האזור. לדוגמה: europe-west1.
  • ‫WORKING_DIR (אופציונלי): ספריית העבודה של ה-container. אם לא מציינים ערך, המערכת תשתמש בערך ברירת המחדל של זמן הריצה של הקונטיינר, שאולי הוגדר בקובץ אימג' של קונטיינר.

הגדרת סדר ההפעלה של הקונטיינר לפריסות של קונטיינר sidecar

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

אפשר להשתמש במסוף Cloud de Confiance , ב-CLI של gcloud או ב-YAML כדי לציין את סדר ההפעלה:

המסוף

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

    כניסה ל-Cloud Run

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

    1. לוחצים על פריסת מאגר תגים.
    2. מציינים את שם העבודה, כתובת ה-URL של מאגר התגים של העבודה, האזור ומספר המשימות.
    3. לוחצים על Containers, Networking, Security (מאגרי תגים, רשתות, אבטחה) כדי להרחיב את הקטע.
    4. מגדירים את קונטיינר העבודה הראשי.
    5. כדי להוסיף כל אחד מהקונטיינרים של sidecar שאתם פורסים, לוחצים על Add container (הוספת קונטיינר).
    6. אם קונטיינר מסוים תלוי בקונטיינרים אחרים, משתמשים בתפריט Container startup order (סדר הפעלת הקונטיינרים) כדי לבחור את הקונטיינרים ש-Cloud Run צריך להפעיל לפני הקונטיינר הנוכחי.
  3. אם אתם מגדירים משימה קיימת, פועלים לפי השלבים הבאים:

    1. בוחרים את המשרה שרוצים לעדכן.
    2. לוחצים על הצגה ועריכה של הגדרות העבודה.
    3. לוחצים על Containers, Connections, Security (מאגרי תגים, חיבורים, אבטחה) כדי להרחיב את הקטע.
    4. אם קונטיינר מסוים תלוי בקונטיינרים אחרים, משתמשים בתפריט סדר הפעלת הקונטיינרים כדי לבחור את הקונטיינרים האלה.
  4. משלימים את ההגדרות הנדרשות ולוחצים על יצירה כדי ליצור משימה חדשה או על עדכון כדי לעדכן משימה קיימת. מחכים שהפריסה תסתיים.

gcloud

כדי לפרוס כמה מאגרי תגים למשימה עם סדר הפעלה מוגדר, מריצים את הפקודה:

  gcloud beta run create JOB \
      --container CONTAINER_1_NAME --image='JOB_IMAGE' \
      --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
      --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAMECONTAINER_2_NAME

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

  • ‫JOB: השם של המשימה ב-Cloud Run.
  • ‫CONTAINER_1_NAME: שם למאגר הראשי של המשימה.
  • ‫JOB_IMAGE: הפניה לתמונה של קובץ ה-container הראשי של הג'וב, לדוגמה, us-docker.pkg.dev/cloudrun/container/job:latest.
  • ‫CONTAINER_2_NAME: שם של קונטיינר ה-sidecar, למשל sidecar.
  • ‫SIDECAR_IMAGE: הפניה לקובץ אימג' של קונטיינר sidecar.

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

YAML

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

    gcloud run jobs describe JOB --format export > job.yaml
  2. מעדכנים את המאפיין container-dependencies:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      annotations:
        run.googleapis.com/launch-stage: BETA
      name: JOB
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
    

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

    • ‫CONTAINER1: השם של הקונטיינר הראשון שתלוי בקונטיינר אחד או יותר. שימו לב שאפשר להגדיר את שם המאגר ב-YAML: ‏ Cloud Run ייצור שם באופן אוטומטי אם לא צוין שם.
    • ‫CONTAINER2: השם של מאגר התגים שצריך להפעיל לפני CONTAINER1.
    • ‫CONTAINER3: השם של הקונטיינר השני שתלוי בקונטיינר אחד או יותר.

    בדוגמה שמוצגת בקטע ה-YAML, הפעולה CONTAINER2 מתחילה ראשונה, הפעולה CONTAINER1 מתחילה שנייה והפעולה CONTAINER3 מתחילה אחרונה.

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

    gcloud run jobs replace job.yaml

    אם קיים קובץ job.yaml, הפקודה gcloud run jobs replace משתמשת בו כברירת מחדל.

הצגת הגדרות מאגר התגים

כדי לראות את הגדרות הקונטיינר הנוכחיות של משימת Cloud Run, משתמשים במסוף Cloud de Confiance או ב-Google Cloud CLI:

המסוף

  1. במסוף Cloud de Confiance by S3NS , נכנסים לדף Cloud Run jobs:

    כניסה לדף Cloud Run jobs

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

  3. לוחצים על הצגה ועריכה של הגדרות העבודה.

  4. מאתרים את הגדרת מאגר התגים בפרטי התצורה.

gcloud

  1. מריצים את הפקודה הבאה:

    gcloud run jobs describe JOB
  2. מחפשים את הגדרת מאגר התגים בתצורה שמוחזרת.