Cloud Deploy תומך במשימות ניתוח שמשתמשות בהתראות שנוצרו על ידי Google Cloud Observability על סמך מדדים ונתונים אחרים גם מ-Google Cloud Observability. עם זאת, אפשר גם להרחיב את Cloud Deploy כדי להשתמש בספקי מדדים אחרים. במאמר הזה מוסבר איך להגדיר ולהשתמש במשימת ניתוח, ומהן הדרישות לקונטיינר בהתאמה אישית שכולל את הלוגיקה לניתוח מדדים מהספק שתבחרו.
לפני שמתחילים
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init מפעילים את ממשקי ה-API של Compute Engine ו-Cloud Deploy, אם הם עדיין לא מופעלים:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירה ולשימוש במשימות ניתוח, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בחשבון של הפרויקט:
- Cloud Deploy Job Runner (
roles/clouddeploy.jobRunner) - משתמש בחשבון שירות ב-IAM (
roles/iam.serviceAccountUser) - צרכן שימוש בשירות (
roles/serviceusage.serviceUsageConsumer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
כדי לוודא שלחשבון השירות של Cloud Deploy יש את ההרשאות הנדרשות ליצירה ולשימוש במשימות ניתוח, צריך לבקש מהאדמין להקצות לחשבון השירות של Cloud Deploy את תפקידי ה-IAM הבאים בפרויקט:
- משתמש בחשבון שירות ב-IAM (
roles/iam.serviceAccountUser) - Cloud Deploy Releaser (
roles/clouddeploy.releaser) - Cloud Deploy Operator (
roles/clouddeploy.operator)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שהאדמין גם יוכל לתת לחשבון השירות של Cloud Deploy את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הגדרת משימת ניתוח בהתאמה אישית
משימת ניתוח בהתאמה אישית זהה למשימת ניתוח שמשתמשת בהתראות מ-Google Cloud Observability, אבל המשימה בהתאמה אישית משתמשת במשימות אחת או יותר שמפנות למאגרי תגים בהתאמה אישית ולפקודות להרצה במאגרי התגים האלה כדי לעבד נתונים מספק המדדים שלכם.
בקטע הזה מוסבר איך להגדיר משימת ניתוח של Cloud Deploy שמשתמשת בספק ניטור שאינוGoogle Cloud .
אפשר להשתמש ישירות בפסקה analysis בתוך קובץ ההגדרות של אסטרטגיית פריסה (strategy.standard.analysis, לאסטרטגיה רגילה). אם רוצים להגדיר ניתוח לכל שלב, משתמשים ב-Canary בהתאמה אישית (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השלב בהשקה שכולל את העבודה של ה-deploy hook, עבודת האימות או עיבוד או פריסה בהתאמה אישית.
המאמרים הבאים
תוכלו לראות את סכימת ההגדרות לניתוח בחומר עזר בנושא הגדרות של Cloud Deploy.