הגדרת משימות

במאמר הזה מוסבר איך להגדיר משימות ב-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 לפריסה, עבודת האימות או עיבוד או פריסה בהתאמה אישית.

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