בדף הזה מוסבר איך להגדיר את פקודת נקודת הכניסה ואת הארגומנטים של משימת Cloud Run.
כש-Cloud Run מפעיל קונטיינר, הוא מריץ את פקודת נקודת הכניסה שמוגדרת כברירת מחדל בקובץ האימג' ואת ארגומנטי הפקודה שמוגדרים כברירת מחדל. אם רוצים לשנות את נקודת הכניסה וארגומנטי הפקודה שמוגדרים כברירת מחדל לתמונה, אפשר להשתמש בשדות command ו-args בהגדרות הקונטיינר. בשדה command מציינים את הפקודה בפועל שהקונטיינר מריץ. השדה args מציין את הארגומנטים שמועברים לפקודה הזו.
שימו לב: כל קונטיינר יכול להכיל עד 1,000 ארגומנטים לכל משימה.
בדף הזה מוסבר איך להגדיר את הפקודה, הארגומנטים וסדר ההתחלה של קונטיינרים בעבודות של Cloud Run. אפשר להגדיר את ההגדרות האלה באמצעותGoogle Cloud המסוף, Google Cloud CLI או YAML.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרת משימות Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
Cloud Run Developer (
roles/run.developer) on the Cloud Run job -
משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם עבודת Cloud Run שלכם מתקשרת עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
הגדרת נקודת כניסה וארגומנטים
כדי להגדיר את נקודת הכניסה לפקודה ואת הארגומנטים למשימות:
המסוף
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוניות של המשימה. אם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת המשימה).
לוחצים על Container(s), Volumes, Connections, Security (מאגרי נתונים, אמצעי אחסון, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
לוחצים על הכרטיסייה General.
- מציינים את הפקודה שרוצים שהקונטיינר יריץ, אם היא לא הפקודה שמוגדרת בקונטיינר, ואם רוצים, מציינים את הארגומנטים לפקודת נקודת הכניסה.
לוחצים על יצירה או על עדכון.
gcloud
כדי להגדיר את פקודת ההתחלה והארגומנטים לגבי משימה חדשה:
gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
החלפה
- JOB_NAME בשם של המשימה.
- COMMAND עם הפקודה שהקונטיינר צריך להתחיל איתה אם לא משתמשים בפקודה שמוגדרת כברירת מחדל.
- ARG1 עם הארגומנט ששולחים לפקודת הקונטיינר. אם יש יותר מארגומנט אחד, צריך להשתמש ברשימה מופרדת בפסיקים, למשל,
--args="arg1", "arg2", "arg3". אם הארגומנטים מכילים פסיקים או תווים מיוחדים, כדאי לעיין במאמר שימוש בסימני שוויון או בפסיקים בארגומנטים. - IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest.
כדי לעדכן את הפקודה והארגומנטים של משימה קיימת:
gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N
YAML
אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB_NAME --format export > job.yaml
מעדכנים את המאפיינים
args:ו-command:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: template: spec: template: spec: containers: - args: - 'ARG1' - 'ARG-N' command: - COMMAND image: IMAGE
החלפה
- COMMAND עם הפקודה שהקונטיינר צריך להתחיל איתה אם לא משתמשים בפקודה שמוגדרת כברירת מחדל.
- ARG1 עם הארגומנט ששולחים לפקודת הקונטיינר. אפשר לציין ארגומנטים נוספים, כל אחד בשורה נפרדת. אם הארגומנטים מכילים פסיקים או תווים מיוחדים, כדאי לעיין במאמר שימוש בסימני שוויון או בפסיקים בארגומנטים.
אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.
מעדכנים את ההגדרה הקיימת של העבודה:
gcloud run jobs replace job.yaml
כדי למחוק את כל הפקודות והארגומנטים של נקודות הכניסה שהגדרתם (לשחזור ברירות המחדל של הקונטיינר), מספקים מחרוזות ריקות באופן הבא:
gcloud run jobs update JOB_NAME --command "" --args ""
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_job בקובץ התצורה של Terraform:resource "google_cloud_run_v2_job" "default" {
name = "JOB_NAME"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
command = ["COMMAND"]
args = ["ARG1", "ARG-N"]
}
}
}
}
מחליפים את:
- JOB_NAME מחליפים בשם של משימת Cloud Run.
- REGION עם האזור Google Cloud . לדוגמה:
europe-west1. - COMMAND עם הפקודה שהקונטיינר צריך להתחיל איתה אם לא משתמשים בפקודה שמוגדרת כברירת מחדל.
- ARG1 עם הארגומנט ששולחים לפקודת הקונטיינר. אפשר גם לציין ארגומנטים נוספים. אם הארגומנטים מכילים פסיקים או תווים מיוחדים, כדאי לעיין במאמר שימוש בסימני שוויון או בפסיקים בארגומנטים.
שימוש בסימני שוויון או בפסיקים בארגומנטים
אם משתמשים בסימני שוויון בארגומנטים, צריך לספק אותם בפורמט הבא:
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
אם הארגומנטים שלכם כוללים פסיקים, כדאי לעיין במאמר בנושא הגדרת משתני סביבה כדי לקבל פרטים על ביטול ברירת המחדל של הפסיקים.
הצגת הגדרות מאגר התגים
כדי לראות את הגדרות הקונטיינר הנוכחיות של משימת Cloud Run:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run jobs:
לוחצים על המשרה שמעניינת אתכם כדי לפתוח את הדף פרטי המשרה.
לוחצים על View and Edit job configuration (הצגה ועריכה של הגדרות העבודה).
מאתרים את הגדרת מאגר התגים בפרטי התצורה.
gcloud
משתמשים בפקודה הבאה:
gcloud run jobs describe JOB_NAME
מאתרים את הגדרת מאגר התגים בתצורה שמוחזרת.
הגדרת סדר ההפעלה של הקונטיינר לפריסות של קונטיינר sidecar
כדי לציין את סדר הפעלת הקונטיינרים בפריסת sidecar, משתמשים בתכונת התלות בין קונטיינרים. מציינים את כל מאגרי התגים שיש להם תלות ומפרטים את מאגרי התגים שהם תלויים בהם. הקונטיינרים שאין להם תלות בקונטיינרים אחרים תמיד מופעלים ראשונים ובמקביל.
אפשר להשתמש במסוף Google Cloud , ב-Google Cloud CLI או ב-YAML כדי לציין את סדר ההפעלה:
המסוף
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
- כדי לערוך משימה קיימת, לוחצים על המשימה ברשימה ובוחרים באפשרות View and edit job configuration (הצגה ועריכה של הגדרות המשימה) כדי להציג את הטופס Edit Job (עריכת המשימה).
- כדי ליצור משימה חדשה, לוחצים על Deploy container (פריסת קונטיינר) כדי להציג את הטופס Create job (יצירת משימה).
לגבי משימה חדשה, מציינים את שם המשימה, כתובת ה-URL של מאגר התגים של המשימה, האזור ומספר המשימות. בכרטיסייה Container(s), Volumes, Networking, Security (מאגרי נתונים, אמצעי אחסון, רשת, אבטחה):
- מגדירים את קונטיינר העבודה הראשי.
- כדי להוסיף כל קונטיינר sidecar שאתם פורסים, לוחצים על Add container (הוספת קונטיינר).
- אם קונטיינר מסוים תלוי בקונטיינרים אחרים, משתמשים בתפריט סדר הפעלת הקונטיינרים כדי לבחור את הקונטיינרים שצריכים להיות מופעלים על ידי Cloud Run לפני הקונטיינר הנוכחי.
כדי להגדיר את המיכלים בעבודות קיימות:
- בודקים את המאגרים שמופיעים בתפריט Container startup order (סדר הפעלת המאגרים).
- אם קונטיינר מסוים תלוי בקונטיינרים אחרים, משתמשים בתפריט Container startup order כדי לבחור את הקונטיינרים האלה.
משלימים את ההגדרות הנדרשות ולוחצים על יצירה כדי ליצור משימה חדשה או על עדכון כדי לעדכן משימה קיימת. ממתינים עד שהפריסה תסתיים.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
כדי לפרוס כמה מאגרי תגים למשימה עם סדר הפעלה מוגדר, מריצים את הפקודה:
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 בשם של המשימה שאתם פורסים. אפשר להשמיט את הפרמטר הזה לגמרי, אבל אם תשמיטו אותו, תתבקשו להזין את שם המשרה.
- CONTAINER_1_NAME בשם של קונטיינר העבודה הראשי.
- JOB_IMAGE עם הפניה לקובץ אימג' של קונטיינר העבודה הראשי, לדוגמה,
us-docker.pkg.dev/cloudrun/container/job:latest. - CONTAINER_2_NAME בשם של קונטיינר ה-sidecar, לדוגמה
sidecar. - SIDECAR_IMAGE עם הפניה לקובץ האימג' של קונטיינר ה-sidecar.
אם רוצים להגדיר כל מאגר תגים בפקודת הפריסה, צריך לספק את ההגדרה של כל מאגר תגים אחרי הפרמטרים
container.אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB_NAME --format export > job.yaml
מעדכנים את המאפיין
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 מתחילה אחרונה.
יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:
gcloud run jobs replace job.yaml