הגדרת ניתוח בהתאמה אישית

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

לפני שמתחילים

  1. נכנסים לחשבון Google.

    אם עדיין אין חשבון, יוצרים חשבון חדש.

  2. התקינו את ה-CLI של Google Cloud.

  3. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה.

  6. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  7. מפעילים את ממשקי ה-API של Compute Engine ו-Cloud Deploy:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com
  8. התקינו את ה-CLI של Google Cloud.

  9. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  10. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  11. מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה.

  12. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  13. מפעילים את ממשקי ה-API של Compute Engine ו-Cloud Deploy:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com

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

כדי לקבל את ההרשאות שדרושות ליצירה ולשימוש במשימות ניתוח, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בחשבון של הפרויקט:

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

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

כדי לוודא שלחשבון השירות של Cloud Deploy יש את ההרשאות הנדרשות ליצירה ולשימוש במשימות ניתוח, צריך לבקש מהאדמין להקצות לחשבון השירות של Cloud Deploy את תפקידי ה-IAM הבאים בפרויקט:

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

יכול להיות שהאדמין גם יוכל לתת לחשבון השירות של Cloud Deploy את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

הגדרת משימת ניתוח בהתאמה אישית

משימת ניתוח בהתאמה אישית דומה למשימת ניתוח שמשתמשת בהתראות מ-Google Cloud Observability, אבל במשימה בהתאמה אישית נעשה שימוש במשימות אחת או יותר שמפנות למאגרי תגים בהתאמה אישית ולפקודות להרצה במאגרי התגים האלה כדי לעבד נתונים מספק המדדים שלכם.

בקטע הזה מוסבר איך להגדיר משימת ניתוח של Cloud Deploy שמשתמשת בספק ניטור שאינוGoogle Cloud .

אפשר להשתמש ישירות בפסקה analysis בתוך קובץ ההגדרות של אסטרטגיית פריסה (strategy.standard.analysis, לשיטה רגילה). אם רוצים להגדיר ניתוח לכל שלב, משתמשים בגרסת גישוש מותאמת אישית (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).

strategy:
  standard:
    analysis:
      duration: DURATION
      customChecks:
      - id: CHECK_ID
        frequency: FREQUENCY
        task:
          type: container
          image: IMAGE_NAME
          command: COMMAND
          args: [ARGS]
          env:
            [VAR_NAME: VALUE]

כאשר:

  • DURATION

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

  • CHECK_ID

    מזהה של הבדיקה הספציפית. המזהה הזה צריך להיות ייחודי למשימת הניתוח הזו

  • FREQUENCY

    התדירות שבה צריך להריץ את הבדיקה הספציפית, בשניות.

  • IMAGE_NAME

    הנתיב והשם שמזהים את קובץ אימג' של קונטיינר.

  • COMMAND

    הפקודה להרצה בקונטיינר הזה, לדוגמה סקריפט מעטפת (/bin/bash).

  • ARGS

    היא רשימת הארגומנטים של הפקודה. זוהי רשימה מופרדת בפסיקים. אם COMMAND_TO_RUN הוא ‎/bin/sh, אחד הארגומנטים יהיה -c, וארגומנט אחר יהיה הפקודה המלאה שרוצים להריץ במעטפת שמפעילים.

  • VAR_NAME

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

    אפשר להשתמש בפרמטרים של המערכת כמשתני סביבה.

  • VALUE

    הערך של כל משתנה סביבה. ‫Cloud Deploy לא עושה שום דבר עם משתני הסביבה האלה, מלבד להעביר אותם עם הערכים שלהם אל הקונטיינר. הקונטיינר משתמש בערכים האלה בלוגיקה של הניתוח.

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

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

בניתוח המותאם אישית, מאגר התגים שאתם מספקים אחראי לניתוח הטלמטריה, היומנים או נתונים אחרים מספק המדדים שבו אתם משתמשים. הג'וב של ניתוח Cloud Deploy ממתין לקוד החזרה מהקונטיינר.

מה המאגר המותאם אישית צריך לעשות

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

מה מאגר התגים המותאם אישית צריך להחזיר

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

הקונטיינר יכול לכתוב תוצאות לקובץ בשם results.json (בפורמט JSON), שנמצא בקטגוריה של Cloud Storage שסופקה על ידי Cloud Deploy. הקובץ יכיל את המטא-נתונים בצורה של צמדי מפתח-ערך. זה לא שדה חובה.

משתני סביבה זמינים

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

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