יצירת הגדרה אישית בסיסית

בדף הזה מוסבר איך ליצור הגדרה שאפשר להשתמש בה כדי ליצור פריסה. מידע נוסף על פריסות זמין במאמר יצירת פריסה.

קובץ הגדרות מגדיר את כל המשאבים שמרכיבים פריסה. Google Cloud כדי ליצור פריסה, צריך קובץ תצורה. קובץ ההגדרות צריך להיות כתוב בתחביר YAML.

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

  • אם רוצים להשתמש בדוגמאות לשורת הפקודה במדריך הזה, צריך להתקין את כלי שורת הפקודה`gcloud`.
  • כדי להשתמש בדוגמאות ל-API במדריך הזה, צריך להגדיר גישה ל-API.
  • כדאי לקרוא ולהבין את העקרונות הבסיסיים של קבצי הגדרה.

המבנה של קובץ התצורה

קובץ ההגדרות נכתב בפורמט YAML ויש לו את המבנה הבא:

#  imported templates, if applicable
imports:
  #  path relative to the configuration file
- path: path/to/template.jinja
  name: my-template
- path: path/to/another/template.py
  name: another-template

resources:
  - name: NAME_OF_RESOURCE
    type: TYPE_OF_RESOURCE
    properties:
      property-a: value
      property-b: value
      ...
      property-z: value
  - name: NAME_OF_RESOURCE
    type: TYPE_OF_RESOURCE
    properties:
      property-a: value
      property-b: value
      ...
      property-z: value

כל אחד מהקטעים מגדיר חלק אחר בפריסה:

  • בקטע imports מופיעה רשימה של קבצי תבניות שישמשו את ההגדרה. ‫Deployment Manager מרחיב באופן רקורסיבי את כל התבניות המיובאות כדי ליצור את ההגדרה הסופית.

  • בקטע resources מופיעה רשימה של משאבים שמרכיבים את הפריסה הזו. משאב יכול להיות:

    • סוג בסיסי שמנוהל על ידי Google, כמו מכונה וירטואלית (VM) של Compute Engine.
    • תבנית מיובאת
    • סוג מורכב.
    • ספק סוגים.

אפשר גם לכלול קטעים אופציונליים אחרים, כמו הקטעים outputs ו-metadata. בקטע outputs אפשר לחשוף נתונים מהתבניות ומההגדרות שלכם כפלט כדי שתבניות אחרות באותו פריסה יוכלו להשתמש בהם, או כפלט למשתמשי הקצה שלכם. בקטע metadata אפשר להשתמש בתכונות אחרות, כמו הגדרת תלות מפורשת בין משאבים.

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

הצהרה על סוג משאב

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

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

type: <api>.<api-version>.<resource-type>

לדוגמה, למכונה של Compute Engine יהיה הסוג הבא:

type: compute.v1.instance

במסד נתונים של BigQuery, הסוג יכול להיות:

type: bigquery.v2.dataset

כדי לראות רשימה של כל הסוגים הנתמכים, משתמשים בפקודה הבאה:

gcloud deployment-manager types list

רשימה מלאה של סוגי הבסיס הנתמכים שמנוהלים על ידי Google זמינה במאמר סוגי משאבים נתמכים.

אם אתם משתמשים בספק סוגים או בספק מורכב, צריך להצהיר על הסוג באופן הבא:

# Composite type

resources:
- name: my-composite-type
  type: [PROJECT]/composite:[TYPE_NAME]

לספק סוגים:

# Base type

resources:
- name: my-base-type
  type: [PROJECT_ID]/[TYPE_PROVIDER_NAME]:[TYPE_NAME]

אפשר גם ליצור משאבים באמצעות ספקי סוגים בניהול Google (בטא). רשימה של ספקי סוגים זמינה במאמר ספקי סוגים נתמכים. Google Cloud

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

imports:
- path: path/to/template/my_vm_template.jinja
  name: my-template.jinja

resources:
- name: my-first-virtual-machine
  type: my-template.jinja

מידע נוסף על תבניות זמין במאמר יצירת תבנית בסיסית.

הצהרה על מאפייני משאבים

אחרי שמצהירים על סוג המשאב, צריך גם לתת למשאב name ולציין את המאפיינים הרצויים למשאב. לדוגמה, בקובץ ההגדרות הבא מוגדרת מכונה וירטואלית בשם vm-created-by-deployment-manager והמאפיינים הרצויים שלה. ‫Deployment Manager משתמש במידע הזה כדי ליצור מכונה וירטואלית עם המאפיינים האלה.

# Copyright 2016 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

resources:
- name: vm-created-by-deployment-manager
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: zones/us-central1-a/machineTypes/n1-standard-1
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: projects/debian-cloud/global/images/family/debian-11
    networkInterfaces:
    - network: global/networks/default

כדי לקבוע את properties של משאב, משתמשים במאמרי העזרה של ה-API של המשאב:

  • אפשר לראות את פורמט הבקשה בשיטה insert או create של המשאב.
  • אם ה-URI של הבקשה מכיל את האזור, מוסיפים את האזור למאפיינים.
  • במערכים, משתמשים בתחביר של רשימת YAML כדי לפרט את רכיבי המערך. לדוגמה, אם יוצרים מכונה ב-Compute Engine באמצעות ה-API, צריך לספק מערך של דיסקים לצירוף למכונה, בפורמט הבא:

    "disks": [
      {
        "type": "PERSISTENT",
        "deviceName": "disk1",
        ...
      },
      {
        "type": "PERSISTENT",
        "deviceName": "disk2",
        ...
      }
    ]
    

    בהגדרות של Deployment Manager, מוסיפים את הדיסקים האלה באמצעות התחביר הבא:

    disks:
    - deviceName: disk1
      type: PERSISTENT
      ...
    - deviceName: disk2
      type: PERSISTENT
    

אפשר גם לציין כל מאפיין שניתן לכתיבה של המשאב הזה. כדי לבדוק אם אפשר לכתוב מאפיין, אפשר להיעזר במסמכי העזר של ה-API לגבי סוג המשאב. לדוגמה, בהפניה ל-Compute Engine מסומנים מאפיינים מסוימים שהם רק לפלט, ולכן אי אפשר להגדיר את המאפיינים האלה בהגדרה, כי הם קבועים.

חלק מהממשקי ה-API דורשים קבוצה מינימלית של מאפיינים כדי ליצור משאב. לדוגמה, כשיוצרים דיסק חדש של אחסון מתמיד ב-Compute Engine, צריך לציין את שם הדיסק, את מקור התמונה, את גודל הדיסק וכו'. כדי לקבל מידע על משאב ספציפי, אפשר לעיין בהפניית ה-API שמתייחסת למשאב הזה.

הגדרת מאפייני תבנית

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

יצירת משאבים משירותים שונים Google Cloud

לבסוף, קובץ הגדרות יכול ליצור משאבים משירותים שונים של Google Cloud. לדוגמה, קובץ התצורה הבא יוצר משאבים מ-Compute Engine ומ-BigQuery:

# Copyright 2016 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

resources:
- name: vm-created-by-deployment-manager
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: zones/us-central1-a/machineTypes/n1-standard-1
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: projects/debian-cloud/global/images/family/debian-11
    networkInterfaces:
    - network: global/networks/default

- name: big-query-dataset
  type: bigquery.v2.dataset
  properties:
    datasetReference:
      datasetId: example_id

סוגי המשאבים והמאפיינים הנתמכים

אפשר לעיין ברשימה המלאה של משאבים בניהול Google שנתמכים במסמך סוגי משאבים נתמכים.

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