בחינת סקריפטים מסייעים

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

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

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

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

פתיחת סקריפט העזרה

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

cd deploymentmanager-samples/examples/v2/step_by_step_guide/create_a_helper_script

nano common.py  # use your preferred text editor

הפונקציה GenerateMachineName() מקבלת תחילית וסיומת, ומפיקה שם בפורמט prefix-suffix:

"""Generates name of a VM."""


def GenerateMachineName(prefix, suffix):
  return prefix + "-" + suffix

שימוש בסקריפט המסייע בתבנית

כדי להשתמש ב-common.py ב-vm-template.py, צריך לבצע כמה שינויים בתבנית.

כדי לראות את השינויים, פותחים את vm-template.py:

nano vm-template.py

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

שימו לב שהתבנית מייבאת common.py בחלק העליון של הקובץ. בקטע resources, השדות name של המכונות הווירטואליות קוראים עכשיו GenerateMachineName().

"""Creates the virtual machine."""

# `common.py` is imported below.
import common

COMPUTE_URL_BASE = 'https://www.googleapis.com/compute/v1/'


def GenerateConfig(context):
  """Generates configuration of a VM."""
  resources = [{
      'name': common.GenerateMachineName('myfrontend', 'prod'),
      'type': 'compute.v1.instance',
      'properties': {
          'zone': 'us-central1-f',
          'machineType': COMPUTE_URL_BASE + 'projects/' + context.env['project']
                         + '/zones/us-central1-f/machineTypes/f1-micro',
          'disks': [{
              'deviceName': 'boot',
              'type': 'PERSISTENT',
              'boot': True,
              'autoDelete': True,
              'initializeParams': {
                  'sourceImage': COMPUTE_URL_BASE + 'projects/'
                                 'debian-cloud/global/images/family/debian-11'}
          }],
          'networkInterfaces': [{
              'network': COMPUTE_URL_BASE + 'projects/' + context.env['project']
                         + '/global/networks/default',
              'accessConfigs': [{
                  'name': 'External NAT',
                  'type': 'ONE_TO_ONE_NAT'
              }]
          }]
      }
  }]
  return {'resources': resources}

הצגת השינויים בהגדרות

כדי לראות את ההגדרה המעודכנת, פותחים את two-vms.yaml:

nano two-vms.yaml

חשוב לזכור שצריך לייבא גם את סקריפט העזר common.py בהגדרה.

פריסת ההגדרה:

gcloud deployment-manager deployments create deployment-with-helper-script --config two-vms.yaml

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

 gcloud deployment-manager deployments describe deployment-with-helper-script

מחיקת הפריסה

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

gcloud deployment-manager deployments delete deployment-with-helper-script

מבט קדימה: עדכון פריסות

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