ב-Application Design Center אתם יכולים לייבא אתGoogle Cloud הגדרות ה-Terraform הקיימות שלכם למוצרים מרובים לתבנית של אפליקציה, כמו שהן, בלי לשנות את מבנה הקוד למודולים של רכיבים נפרדים או לפרסם אותו בקטלוג קודם.
בניגוד למודולים של Terraform למוצר יחיד, שאותם מייבאים כרכיבים בקטלוג ומחברים בלוח העריכה, הגדרה של Terraform לכמה מוצרים היא מודול בסיס שמקצה משאבים לכמה מוצרים של Google Cloud . כדי לייבא מודולים של מוצר יחיד כרכיבים, ראו ייבוא רכיבים.
ייבוא של הגדרות Terraform קיימות ל-App Design Center עוזר לכם:
- להעביר הגדרות קיימות של Terraform לניהול מחזור החיים של האפליקציה ב-App Design Center, ולרשום באופן אוטומטי משאבים שנפרסו ב-App Hub.
- כדי ליצור גרסאות של הגדרות Terraform, יוצרים גרסאות של תבניות אפליקציה שלא ניתנות לשינוי.
- אפשר להציג תצוגה מקדימה של אפליקציות ולפרוס אותן באמצעות Infrastructure Manager, או לייצא את קובצי Terraform ל-Cloud Storage.
אחרי שיוצרים גרסה של תבנית, אפשר להשתמש בה באחת מהדרכים הבאות:
- פריסה ישירה: יוצרים אפליקציה מהגרסה, צופים בתצוגה מקדימה כדי לקבל דוח הערכה ופורסים אותה. לא צריך לפרסם את התבנית בקטלוג, לשתף אותה או למצוא תבנית משותפת קודם.
- שימוש חוזר דרך הקטלוג: מפרסמים את הגרסה בקטלוג, מוסיפים אותה כרכיב לתבנית של אפליקציה מורכבת ומייצאים את ה-Terraform של התבנית המורכבת. מידע נוסף זמין במאמר פרסום תבנית של אפליקציה בקטלוג.
לפני שמתחילים
כדי לבצע את המשימות שמפורטות במאמר הזה, בקשו מהאדמין להקצות לכם את התפקידים הנדרשים בתיקייה לניהול אפליקציות או בפרויקט הניהול, כמו שמפורט בטבלה הבאה:
| משימה | התפקידים הנדרשים |
|---|---|
| ליצור, לייבא, לייצא ולצלם תמונות מצב של תבניות של אפליקציות וגרסאות של תבניות | אדמין ב-Application Design Center (roles/designcenter.admin) או משתמש ב-Application Design Center (roles/designcenter.user) |
| יצירה, פריסה וייצוא של אפליקציות | אדמין של אפליקציה (roles/designcenter.applicationAdmin) או עריכת אפליקציה (roles/designcenter.applicationEditor) |
מידע נוסף על תפקידים זמין במאמר בקרת גישה באמצעות ניהול זהויות והרשאות גישה.
שומרים את מודול הבסיס של Terraform (קובצי .tf וכל קובץ תומך, כמו קובצי .json) באחד מהמקורות הבאים:
- קטגוריה של Cloud Storage.
- מאגר ב-Developer Connect.
- מאגר Git ציבורי.
- קובץ YAML או JSON מקומי שמכיל את הקבצים.
ייבוא של Terraform לתבנית של אפליקציה
כדי ליצור תבנית של אפליקציה, לייבא את ההגדרות הקיימות של Terraform וליצור גרסה קבועה של התבנית, מבצעים את השלבים הבאים באמצעות Google Cloud CLI.
יוצרים תבנית של אפליקציה במרחב העבודה.
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --display-name=DISPLAY_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
APPLICATION_TEMPLATE: המזהה של תבנית האפליקציה שרוצים ליצור. -
PROJECT: מזהה הפרויקט לניהול. -
LOCATION: מזהה המיקום שלכם. -
SPACE: מזהה המרחב המשותף. -
DISPLAY_NAME: השם המוצג של תבנית האפליקציה.
מידע נוסף זמין במאמר gcloud design-center spaces application-templates create.
-
מייבאים את הגדרות Terraform לתבנית האפליקציה מאחד מהמקורות הבאים:
כדי לייבא מקטגוריה של Cloud Storage, מריצים את הפקודה הבאה:
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --gcs-uri=GCS_URI \ --raw-terraform-import-enabledכדי לייבא ממאגר של Developer Connect, מריצים את הפקודה הבאה:
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --developer-connect-repo-uri=DEVELOPER_CONNECT_REPO_URI \ --developer-connect-branch=DEVELOPER_CONNECT_BRANCH \ --developer-connect-dir=DEVELOPER_CONNECT_DIR \ --raw-terraform-import-enabledכדי לייבא ממאגר Git ציבורי, מריצים את הפקודה הבאה:
gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --git-source-repo=GIT_SOURCE_REPO \ --git-source-ref-tag=GIT_SOURCE_REF_TAG \ --git-source-dir=GIT_SOURCE_DIR \ --raw-terraform-import-enabledכדי לייבא מקובץ YAML או JSON מקומי שמכיל מטען ייעודי (payload) של
IaCModule, מריצים את הפקודה הבאה:gcloud design-center spaces application-templates ingest-iac APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --iac-module-from-file=IAC_MODULE_FILE \ --raw-terraform-import-enabled
מחליפים את מה שכתוב בשדות הבאים:
-
APPLICATION_TEMPLATE: מזהה תבנית האפליקציה. -
PROJECT: מזהה הפרויקט לניהול. -
LOCATION: מזהה המיקום שלכם. -
SPACE: מזהה המרחב המשותף. -
GCS_URI: ה-URI של Cloud Storage שמכיל את קובצי Terraform, בפורמטgs://BUCKET_NAME/FOLDER_PATH. -
DEVELOPER_CONNECT_REPO_URI: ה-URI של הקישור למאגר ב-Developer Connect, בפורמטprojects/PROJECT/locations/LOCATION/connections/CONNECTION/gitRepositoryLinks/REPO_LINK. -
DEVELOPER_CONNECT_BRANCH: שם ההסתעפות במאגר של Developer Connect. אפשר גם לציין את--developer-connect-ref-tagאו את--developer-connect-commit-sha. -
DEVELOPER_CONNECT_DIR: נתיב הספרייה במאגר Developer Connect. -
GIT_SOURCE_REPO: כתובת ה-URL מסוג HTTPS של מאגר Git הציבורי. -
GIT_SOURCE_REF_TAG: ההפניה או התג של Git במאגר הציבורי של Git. -
GIT_SOURCE_DIR: הנתיב לספרייה במאגר הציבורי ב-Git. -
IAC_MODULE_FILE: הנתיב לקובץ YAML או JSON מקומי שמכיל את קובצי Terraform.
יוצרים תמונת מצב של תבנית האפליקציה כדי ליצור גרסה קבועה של תבנית האפליקציה, שבה תוכלו להשתמש כדי ליצור ולפרוס אפליקציות.
gcloud design-center spaces application-templates snapshot APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACEמחליפים את מה שכתוב בשדות הבאים:
-
APPLICATION_TEMPLATE: מזהה תבנית האפליקציה. -
PROJECT: מזהה הפרויקט לניהול. -
LOCATION: מזהה המיקום שלכם. -
SPACE: מזהה המרחב המשותף.
הפלט כולל את ה-URI של גרסת תבנית האפליקציה שנוצרה, בפורמט
projects/PROJECT/locations/LOCATION/spaces/SPACE/applicationTemplates/APPLICATION_TEMPLATE/revisions/REVISION.-
יצירה ופריסה של אפליקציה מהתבנית
אחרי שיוצרים גרסת תמונת מצב של תבנית Terraform שיובאה, אפשר ליצור טיוטת אפליקציה, לספק ערכים של משתני קלט ולפרוס את האפליקציה.
יוצרים טיוטת בקשה מהגרסה של תבנית הבקשה.
gcloud design-center spaces applications create APPLICATION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --source-application-template-revision=SOURCE_APPLICATION_TEMPLATE_REVISION \ --deployment-project=DEPLOYMENT_PROJECT \ --deployment-region=DEPLOYMENT_REGION \ --app-parameters=APP_PARAMETERS \ --scope-type=SCOPE_TYPEמחליפים את מה שכתוב בשדות הבאים:
-
APPLICATION: המזהה של האפליקציה שרוצים ליצור. -
PROJECT: מזהה הפרויקט לניהול. -
LOCATION: מזהה המיקום שלכם. -
SPACE: מזהה המרחב המשותף. -
SOURCE_APPLICATION_TEMPLATE_REVISION: ה-URI של גרסת תבנית האפליקציה שהוחזר על ידי הפקודהsnapshot. -
DEPLOYMENT_PROJECT: מזהה פרויקט היעד שבו פורסים את המשאבים של Terraform. -
DEPLOYMENT_REGION: אזור היעד שבו נפרסים המשאבים של Terraform. -
APP_PARAMETERS: אופציונלי. מזינים זוגות של מפתח/ערך למשתנים של מודול הבסיס של Terraform (לדוגמה,key=KEY,value=VALUE), או את הנתיב לקובץ YAML או JSON שמכיל את הפרמטרים של האפליקציה. -
SCOPE_TYPE: היקף ההרשאות של האפליקציה,regionalאוglobal.
למידע נוסף על ניהול אפליקציות, ראו ניהול אפליקציות.
-
צופים בתצוגה מקדימה של האפליקציה ופורסים אותה. להוראות מפורטות, ראו פריסת אפליקציות.
ייצוא קוד Terraform ל-Cloud Storage
אתם יכולים לייצא את קובצי Terraform מקטגוריה של Cloud Storage, מתבנית של אפליקציה, מגרסה של תבנית של אפליקציה או מאפליקציה. ייצוא – כשרוצים להריץ את Terraform באמצעות כלי CI/CD משלכם או לשמור עותק בניהול גרסאות.
כדי לייצא קובצי Terraform מטיוטה של תבנית אפליקציה, מריצים את הפקודה הבאה:
gcloud design-center spaces application-templates export APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URIכדי לייצא קובצי Terraform מגרסה של תבנית אפליקציה, מריצים את הפקודה הבאה:
gcloud design-center spaces application-templates revisions export REVISION \ --application-template=APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URIכדי לייצא קובצי Terraform מאפליקציה (כולל
zz_adc_inputs.auto.tfvars.jsonשמאוכלס בפרמטרים שהגדרתם לאפליקציה), מריצים את הפקודה הבאה:gcloud design-center spaces applications export APPLICATION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --artifact-location-gcs-uri=ARTIFACT_LOCATION_GCS_URI
מחליפים את מה שכתוב בשדות הבאים:
-
APPLICATION_TEMPLATE: מזהה תבנית האפליקציה. -
REVISION: מזהה הגרסה של תבנית האפליקציה. -
APPLICATION: מזהה האפליקציה. -
PROJECT: מזהה הפרויקט לניהול. -
LOCATION: מזהה המיקום שלכם. -
SPACE: מזהה המרחב המשותף. -
ARTIFACT_LOCATION_GCS_URI: ה-URI של היעד ב-Cloud Storage, בפורמטgs://BUCKET_NAME/EXPORT_FOLDER.
המאמרים הבאים
- ניהול אפליקציות.
- פריסת אפליקציות.
- מורידים ופורסים את Terraform.
- ייצוא קוד Terraform ממסוף Google Cloud .
- פרסום תבנית של אפליקציה בקטלוג.
- ייבוא רכיבים.