במאמר הזה מוסבר איך להגדיר משימות ב-Cloud Deploy. משימה היא יחידת עבודה שאפשר להשתמש בה כוו פריסה, לאימות פריסה, לניתוח פריסה או לעיבוד בהתאמה אישית או לפריסה בהתאמה אישית בסוג יעד בהתאמה אישית.
אפשר להגדיר משימה בצינור העיבוד להטמעת נתונים (כחלק מהאסטרטגיה) או ב-custom target type render או בפריסה.
בעזרת משימות, אתם יכולים להשתמש בפרמטרים של המערכת על ידי יצירת תבנית שלהם בהגדרת המשימה.
הגדרת משימה
אפשר להגדיר משימה בהגדרות של צינור ההפצה או כחלק מהגדרה של סוג יעד בהתאמה אישית. קובץ ה-YAML הבא מציג את פסקה task שמשמשת בכל אחד מהמקרים:
task:
type: container
image: IMAGE
command: [COMMANDS_TO_RUN]
args: [LIST_OF_ARGS]
env:
- KEY1:VAL1
- KEY2:VAL2
...
בהגדרות של task:
typeמציין את סוג המשימה שמוגדרת. יש תמיכה רק ב-
container.imageהנתיב לקובץ אימג' של קונטיינר.
commandהפקודה או הפקודות להרצה במאגר.
argsהוא אוסף של ארגומנטים של הפונקציה
command.envאוסף של משתני סביבה שיועברו לקונטיינר הפועל.
פרמטרים של המערכת כמשתני סביבה של המשימה
Cloud Deploy מציע פרמטרים שנוצרים על ידי המערכת שאפשר להשתמש בהם כמשתני סביבה במשימות, באמצעות השדה env במשימה container. הפרמטרים עם התבנית יכולים להופיע בשדות המפתח או הערך של רשומה במפה env.
הנה כמה תרחישים לדוגמה:
העברה של שם שירות Cloud Run, כתובת ה-URL של השירות ושם הגרסה כמשתני סביבה.
task: type: container image: my-image command: ["/bin/bash"] env: - RUN_SERVICE_NAME : "${{ render.metadata.cloud_run.service.name }}" - RUN_SERVICE_URL: "${{ rollout.metadata.cloud_run.service_url }}" - RUN_REVISION_NAME: "${{ render.metadata.cloud_run.revision.name }}"שימוש בכמה פרמטרים ברשומה אחת.
task: type: container image: my-image command: ["/bin/bash"] env: - DEPLOY_PARAMS_KEY : "${{ deploy_params['FOO'] }}-with-${{ deploy_params['BAR'] }}" - "${{ project.id }}_${{ location }}" : "${{ target.id }}"
פרמטרים זמינים של המערכת
Cloud Deploy מספק את פרמטרי המערכת הבאים שבהם אפשר להשתמש בהגדרות המשימות בפורמט הזה:
${{ parameter }}
$${{ }}.
זו רשימת הפרמטרים שזמינים ליצירת תבניות:
| שם | הגדרה |
|---|---|
location |
האזור שמכיל את המשאבים של Cloud Deploy. זמין כשיוצרים גרסת הפצה. |
project.num |
Google Cloud מספר הפרויקט שמכיל את המשאבים של Cloud Deploy. זמין כשיוצרים גרסת הפצה. |
project.id |
מזהה הפרויקט Google Cloud של הפרויקט. זמין כשיוצרים גרסת הפצה. |
delivery_pipeline.name |
שם המשאב שמוגדר במלואו של צינור ההפצה. זמין כשיוצרים גרסת הפצה. |
delivery_pipeline.id |
המזהה של צינור העברת הנתונים. זמין כשיוצרים גרסת הפצה. |
target.name |
שם המשאב המלא של היעד. זמין כשיוצרים גרסת הפצה. |
target.id |
המזהה של היעד. זמין כשיוצרים גרסת הפצה. |
release.name |
שם המשאב המלא של הגרסה. זמין כשיוצרים גרסת הפצה. |
release.id |
המזהה של פריט התוכן. זמין כשיוצרים גרסת הפצה. |
rollout.name |
שם המשאב המלא של ההשקה. זמין ביצירת השקה. |
rollout.id |
המזהה של ההשקה. זמין ביצירת השקה. |
job.id |
המזהה של העבודה שמופעלת. זמין ביצירת השקה. |
phase.id |
השלב בהשקה שכולל את המשימה של הפעולות. זמין ביצירת השקה. |
job_run.name |
שם המשאב שצוין במלואו של הפעלת המשימה שמייצגת את ההפעלה הנוכחית של המשימה. זמין ביצירת השקה. |
job_run.id |
המזהה של הרצת המשימה שמייצגת את ההרצה הנוכחית של המשימה. זמין ביצירת השקה. |
deploy_params |
מיפוי של פרמטרים של פריסה
שמשויכים ליעד. דוגמה: deploy_params['KEY']
ניסיון לגשת למפתח שלא קיים יחזיר מחרוזת ריקה. זמין כשיוצרים גרסת הפצה. |
לגבי יעדים מהסוג RUN: |
|
cloud_run.project |
הפרויקט שבו נוצר שירות Cloud Run. זמין כשיוצרים גרסת הפצה. |
cloud_run.location |
האזור שבו נפרס שירות Cloud Run. זמין כשיוצרים גרסת הפצה. |
render.metadata.cloud_run.service.name |
השם של שירות Cloud Run שנפרס. זמין אחרי שפעולת הרינדור מסתיימת. |
render.metadata.cloud_run.service.id |
המזהה של שירות Cloud Run שנפרס. זמין אחרי שפעולת הרינדור מסתיימת. |
rollout.metadata.cloud_run.service.url |
כתובת ה-URL שמשתמשי הקצה ישתמשו בה כדי לגשת לשירות. אפשר למצוא אותם בפרטי השירות של Cloud Run בשירות שלכם ב Google Cloud מסוף. זמין אחרי שהפעולה של הפריסה מסתיימת. |
render.metadata.cloud_run.revision.name |
השם המלא של הגרסה של שירות Cloud Run שנפרס. זמין אחרי שפעולת הרינדור מסתיימת. |
render.metadata.cloud_run.revision.id |
מזהה הגרסה של שירות Cloud Run שנפרס. זמין אחרי שפעולת הרינדור מסתיימת. |
rollout.metadata.cloud_run.previous_revision.name |
השם המלא של הגרסה הקודמת של שירות Cloud Run שנפרס. זמין אחרי שהפעולה של הפריסה מסתיימת. |
rollout.metadata.cloud_run.previous_revision.id |
מזהה הגרסה הקודמת של שירות Cloud Run שנפרס. זמין אחרי שהפעולה של הפריסה מסתיימת. |
לגבי יעדים מהסוג GKE: |
|
gke.cluster.name |
שם המשאב שצוין במלואו של אשכול GKE. זמין כשיוצרים גרסת הפצה. |
gke.cluster.id |
המזהה של אשכול GKE. זמין כשיוצרים גרסת הפצה. |
gke.cluster.project |
מזהה או מספר הפרויקט של אשכול GKE. זמין כשיוצרים גרסת הפצה. |
gke.cluster.location |
המיקום של אשכול GKE. זמין כשיוצרים גרסת הפצה. |
לגבי יעדים מהסוג ANTHOS: |
|
anthos.membership.project |
מזהה הפרויקט או מספר הפרויקט של אשכול GKE Enterprise. זמין כשיוצרים גרסת הפצה. |
anthos.membership.location |
המיקום של אשכול GKE Enterprise. זמין כשיוצרים גרסת הפצה. |
anthos.membership.name |
השם המלא של המשאב של החברות ב-GKE Enterprise. זמין כשיוצרים גרסת הפצה. |
anthos.membership.id |
המזהה של החברות ב-GKE Enterprise. זמין כשיוצרים גרסת הפצה. |
ליעדי Kubernetes (יעדים מהסוגים GKE ו-ANTHOS): |
|
render.metadata.kubernetes.deployment |
השם של הפריסה שעוברת עדכון. ההגדרה הזו לא מוגדרת אם יש יותר מפריסה אחת במניפסטים. זמין אחרי שפעולת הרינדור מסתיימת. |
render.metadata.kubernetes.canary_deployment |
השם של פריסת גרסה ראשונית (canary) בפריסת גרסה ראשונית (canary) אוטומטית. בשלב היציב, הערך הזה זהה לערך של render.metadata.kubernetes.deployment, כי אין קנרי בשלב היציב. בשלבים האחרים, זהה ל-
render.metadata.kubernetes.deployment עם
-canary בסוף.זמין אחרי שפעולת הרינדור מסתיימת. |
render.metadata.kubernetes.namespace |
מרחב השמות של המשאבים שנפרסים. הערך הזה לא מוגדר אם יש יותר ממרחב שמות אחד במניפסטים. זמין אחרי שפעולת הרינדור מסתיימת. |
לגבי יעדים מהסוג CUSTOM_TARGET_TYPE: |
|
render.metadata.custom |
מפה של מטא-נתוני הרינדור מרינדור בהתאמה אישית. דוגמה: render.metadata.custom['KEY']ניסיון לגשת למפתח שלא קיים יחזיר מחרוזת ריקה. זמין אחרי שפעולת הרינדור מסתיימת. |
rollout.metadata.custom |
מפה של המטא-נתונים של ההשקה מפריסה בהתאמה אישית. דוגמה: rollout.metadata.custom['KEY']ניסיון לגשת למפתח שלא קיים יחזיר מחרוזת ריקה. זמין אחרי שהפעולה של הפריסה מסתיימת. |
משתני סביבה זמינים
Cloud Deploy גם מספק ומאכלס את משתני הסביבה הבאים בסביבת הביצוע. אפשר להשתמש במשתני הסביבה האלה כחלק מה-deploy hook, מהאימות של העבודה או מהיעד המותאם אישית שלכם.
ANTHOS_MEMBERSHIPעבור יעדים מהסוג
ANTHOS, שם המשאב המלא של החברות ב-Anthos.CLOUD_RUN_LOCATIONלמטרות מסוג
RUN, האזור שבו שירות Cloud Run נפרס.CLOUD_RUN_PROJECTלמטרות מסוג
RUN, הפרויקט שבו נוצר שירות Cloud Run.CLOUD_RUN_SERVICEעבור יעדים מסוג
RUN, השם של שירות Cloud Run שנפרס.CLOUD_RUN_SERVICE_URLSלטרגטים מהסוג
RUN, כתובת ה-URL או כתובות ה-URL (רשימה מופרדת בפסיקים) שמשתמשי הקצה ישתמשו בהן כדי לגשת לשירות שלכם. אפשר למצוא אותם בפרטי השירות של Cloud Run בשביל השירות שלכם, בGoogle Cloud מסוף. כתובות ה-URL נוצרות על ידי Cloud Run אחרי ששירות או שירותים של Cloud Run נפרסים בהצלחה. לכן משתנה הסביבה הזה זמין רק ב-postdeploy hooks ובverify jobs.CLOUD_RUN_REVISIONלמטרות מסוג
RUN, הגרסה הספציפית של שירות Cloud Run.GKE_CLUSTERעבור יעדים מסוג
GKE, שם המשאב שצוין במלואו של אשכול Google Kubernetes Engine, לדוגמהprojects/p/locations/us-central1/clusters/dev.TARGET_TYPEסוג זמן הריצה הספציפי של היעד. אפשר להשתמש ב-
GKE, ב-ANTHOSאו ב-RUN. הערך הזה לא מוגדר ליעדים מותאמים אישית.CLOUD_DEPLOY_LOCATIONהאזור שמכיל את המשאבים של Cloud Deploy.
CLOUD_DEPLOY_DELIVERY_PIPELINEהמזהה של צינור העברת הנתונים.
CLOUD_DEPLOY_TARGETהמזהה של היעד.
CLOUD_DEPLOY_PROJECTמספר הפרויקט ב- Google Cloud שמכיל את המשאבים של Cloud Deploy.
CLOUD_DEPLOY_PROJECT_IDמזהה הפרויקט Google Cloud של הפרויקט.
CLOUD_DEPLOY_RELEASEהמזהה של הגרסה שבה יופעלו ה-hooks.
CLOUD_DEPLOY_ROLLOUTהמזהה של ההשקה שכוללת את המשימות של ה-hooks.
CLOUD_DEPLOY_JOB_RUNהמזהה של הפעלת המשימה שמייצג את ההרצה הנוכחית של המשימה.
CLOUD_DEPLOY_PHASEהשלב בהשקה שכולל את העבודה של ה-hook לפריסה, עבודת האימות או עיבוד או פריסה בהתאמה אישית.
המאמרים הבאים
- איך מריצים deploy hooks באמצעות משימות
- איך מאמתים את הפריסה באמצעות משימות
- מידע נוסף על יעדים מותאמים אישית