הגדרה ושימוש בסוג יעד מותאם אישית
במדריך למתחילים הזה נסביר איך להשתמש ב-Cloud Deploy כדי ליצור סוג יעד מותאם אישית, ואז לפרוס ליעד מותאם אישית מהסוג הזה.
במדריך למתחילים הזה תבצעו את הפעולות הבאות:
מגדירים סוג יעד מותאם אישית, שבו קובעים את אופן הפעולה של היעד. ההגדרה הזו מתייחסת לקובצי אימג' של קונטיינרים בתוספת פקודות shell להרצה בקובצי האימג' האלה, שהן הפעולות של עיבוד ופריסה.
הגדרת יעד שמפנה לסוג היעד המותאם אישית.
מגדירים את צינור עיבוד הנתונים למשלוח ב-Cloud Deploy.
הצינור הזה כולל רק שלב אחד ומשתמש רק ביעד אחד. בשלב הזה, תציינו את היעד שהגדרתם.
יוצרים הגדרה של Skaffold, שנדרשת לגרסה.
יוצרים גרסת הפצה, שיוצרת באופן אוטומטי פריסה, וכתוצאה מכך מתבצעות פעולות העיבוד והפריסה המותאמות אישית.
במסגרת הגרסה וההשקה האלה, מופעלות גם פעולות העיבוד והפריסה שהוגדרו בהגדרות של סוג היעד המותאם אישית.
צפייה בתוצאות של הפעולות המותאמות אישית. המידע הזה כולל קובץ תצורה שעבר עיבוד והועלה ל-Cloud Storage, מחרוזת שנכתבה בקובץ הזה וקובץ תוצאות שכולל את סטטוס הפעולה.
לפני שמתחילים
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud initאם כבר התקנתם את Google Cloud CLI, צריך לוודא שפועלת אצלכם הגרסה העדכנית ביותר:
gcloud components update
- מוודאים שלחשבון השירות שמשמש כברירת מחדל ב-Compute Engine יש הרשאות מספיקות.
יכול להיות שלחשבון השירות כבר יש את ההרשאות הנדרשות. השלבים האלה מיועדים לפרויקטים שבהם השבתתם את ההקצאות האוטומטיות של תפקידים בחשבונות שירות שמוגדרים כברירת מחדל.
- קודם מוסיפים את התפקיד
clouddeploy.jobRunner:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@ \ --role="roles/clouddeploy.jobRunner" - מוסיפים את תפקיד המפתח לסביבת זמן הריצה הספציפית.
-
מוסיפים את התפקיד
iam.serviceAccountUser, שכולל את ההרשאהactAsלפריסה בסביבת זמן הריצה:gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@ \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@ \ --role="roles/iam.serviceAccountUser" \ --project=PROJECT_ID
יצירת פייפליין להפצה, סוג יעד מותאם אישית ויעד
אתם יכולים להגדיר את צינור ההפצה, סוג יעד מותאם אישית ויעד בקובץ אחד או בקבצים נפרדים. במדריך למתחילים הזה, יוצרים קובץ אחד עם כל שלושת הקבצים.
פותחים חלון טרמינל.
יוצרים ספרייה חדשה ועוברים אליה.
mkdir custom-target-quickstart cd custom-target-quickstartבספרייה custom-target-quickstart, יוצרים קובץ חדש,
clouddeploy.yaml, עם התוכן הבא:apiVersion: deploy.cloud.google.com/v1 kind: DeliveryPipeline metadata: name: custom-targets-pipeline serialPipeline: stages: - targetId: sample-env --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: sample-env customTarget: customTargetType: basic-custom-target --- apiVersion: deploy.cloud.google.com/v1 kind: CustomTargetType metadata: name: basic-custom-target tasks: render: type: 'container' image: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:484e8266c1cfc84b283bc6d4eec1f6b61223115178cce76fb59f77b223f26e8e command: ['/bin/bash'] args: - '-c' - |- echo "Sample manifest rendered content" > manifest.txt gcloud storage cp manifest.txt $CLOUD_DEPLOY_OUTPUT_GCS_PATH/manifest.txt echo {\"resultStatus\": \"SUCCEEDED\", \"manifestFile\": \"$CLOUD_DEPLOY_OUTPUT_GCS_PATH/manifest.txt\"} > results.json gcloud storage cp results.json $CLOUD_DEPLOY_OUTPUT_GCS_PATH/results.json deploy: type: 'container' image: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:484e8266c1cfc84b283bc6d4eec1f6b61223115178cce76fb59f77b223f26e8e command: ['/bin/bash'] args: - '-c' - |- echo {\"resultStatus\": \"SUCCEEDED\"} > results.json gcloud storage cp results.json $CLOUD_DEPLOY_OUTPUT_GCS_PATH/results.jsonההגדרה של סוג היעד בהתאמה אישית כוללת את
tasksהפסקה, שמגדירה משימת עיבוד ומשימת פריסה. כל אחת מהמשימות האלה מתייחסת לקובץ אימג' של קונטיינר להרצה, ולפקודות להרצה בקונטיינר הזה.רושמים את צינור עיבוד הנתונים ואת היעדים בשירות Cloud Deploy:
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_ID
עכשיו יש לכם צינור להעברת נתונים עם יעד אחד. זהו היעד שלכם באמצעות סוג היעד המותאם אישית, וצינור זה לא פורס אפליקציה בסביבת זמן ריצה.
מאשרים את הצנרת ואת היעדים:
במסוף Google Cloud , נכנסים לדף Delivery pipelines של Cloud Deploy כדי לראות רשימה של צינורות העברת הנתונים שזמינים לכם.
צינור העברת הנתונים שיצרתם מוצג, עם יעד אחד שמופיע בעמודה יעדים.

יצירת קובץ התצורה של Skaffold
הגרסה במדריך למתחילים הזה דורשת קובץ הגדרות של Skaffold, אבל לא צריך להגדיר בו הגדרות משמעותיות.
יוצרים קובץ בשם
skaffold.yamlעם התוכן הבא:apiVersion: skaffold/v4beta7 kind: Config
יצירת גרסה
הפצה היא המשאב המרכזי ב-Cloud Deploy שמייצג את השינויים שנפרסים. צינור העברת התוכן מגדיר את מחזור החיים של הגרסה הזו. פרטים על מחזור החיים הזה מופיעים במאמר ארכיטקטורת שירות Cloud Deploy.
מריצים את הפקודה הבאה מהספרייה custom-target-quickstart כדי ליצור משאב release שמייצג את הפעולה בהתאמה אישית שרוצים לפרוס:
gcloud deploy releases create test-release-001 \
--project=PROJECT_ID \
--region=us-central1 \
--delivery-pipeline=custom-targets-pipeline
בדומה לכל פריטי התוכן (אלא אם הם כוללים --disable-initial-rollout),
גם Cloud Deploy יוצר באופן אוטומטי משאב פריסת גרסה. וכל השלבים של ההשקה הזו מבוצעים, כולל עיבוד ופריסה.
הצגת התוצאות במסוף Google Cloud
אחרי כמה דקות, הפריסה תושלם. במקרה הזה, מכיוון ששתי הפעולות המותאמות אישית הן פקודות להדפסת מחרוזות לקובץ ולהעלאת הקובץ ל-Cloud Storage, לא מתבצע פריסה לזמן ריצה של יעד כלשהו.
עם זאת, אתם יכולים לראות את הקובץ ואת המחרוזות שבו:
במסוף Google Cloud , עוברים לדף Delivery pipelines של Cloud Deploy כדי לראות את צינור העברת השינויים (
custom-targets-pipeline).לוחצים על השם של צינור העברת הנתונים (
custom-targets-pipeline).במסך מוצג תרשים של צינור הנתונים, שבו אפשר לראות את סטטוס הפריסה של האפליקציה. מכיוון שיש רק שלב אחד בצינור, ההדמיה מציגה רק צומת אחד.

פריט התוכן יופיע בכרטיסייה פריטי תוכן בקטע פרטים על צינור ההפצה.
לוחצים על שם הגרסה.
יוצג הדף פרטי פריט התוכן.
לוחצים על הכרטיסייה פריטי מידע.
בקטע Target artifacts (פריטי מידע על היעד), לוחצים על הקישור VIEW ARTIFACTS (הצגת פריטי מידע).
קובץ המניפסט שעבר רינדור מוצג. במקרה הזה, הקובץ הוא הפלט של פעולת העיבוד בהתאמה אישית שהגדרתם בהגדרות של סוג היעד בהתאמה אישית, והוא מכיל את המחרוזת Sample manifest rendered content.

מוצאים את הקטגוריות של Cloud Storage שנוצרו על ידי הגרסה הזו.
פתיחת הדף Cloud Storage browser
מוצג הדף Buckets (קטגוריות), שבו מוצגות שתי קטגוריות שנוצרו לגרסה הזו. קטגוריה אחת מכילה את קובץ התצורה של צינור העברת הנתונים ואת
skaffold.yamlשעבר רינדור. הקובץ השני כולל את קובץ הפלט שהפעולה המותאמת אישית מוגדרת ליצור.לוחצים על הקטגוריה שהשם שלה מתחיל ב-
us-central1.deploy-artifacts...
לוחצים על התיקייה שהשם שלה מתחיל ב-
custom-targets-pipeline-ואז לוחצים על התיקייהtest-release-001.לוחצים על התיקייה שהשם שלה הוא שם ההשקה, שצריך להיות
test-release-001-to-sample-env-0001.לוחצים על התיקייה שמוצגת, שהיא UUID, ואז לוחצים על התיקייה
custom-output.לוחצים על
results.jsonואז על כתובת ה-URL עם ההיפר-קישור בשדה כתובת URL מאומתת.הקובץ הזה מכיל את המחרוזת שהגדרתם כפלט מהפעולה
custom-deployבהגדרת סוג היעד המותאם אישית:
הסרת המשאבים
כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה:
מחיקת צינור העברת התוכן, היעד, הגרסה וההשקה:
gcloud deploy delete --file=clouddeploy.yaml --force --region=us-central1 --project=PROJECT_IDמוחקים את שתי קטגוריות האחסון ב-Cloud Storage שנוצרו על ידי Cloud Deploy.
סיימתם את המדריך למתחילים.