探索輔助指令碼

「輔助指令碼」 (又稱為「範本模組」) 是能執行特定功能的輔助檔案,藉此讓您的範本更有效率。舉例來說,您可以使用輔助指令碼來解譯資源中繼資料、建立檔案,以及啟動服務。

您現在將探索 Python 輔助指令碼,可產生具有指定前置字串和後置字串的虛擬機器名稱。

事前準備

開啟輔助指令碼

本範例中的基本輔助指令碼會產生虛擬機器 (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

使用範本中的輔助指令碼

如要使用 vm-template.py 中的 common.py,必須對範本做出多項變更。

如要查看變更,請開啟 vm-template.py

nano vm-template.py

範本含有重點介紹變更的程式碼註解。

請注意,範本會在檔案的頂端匯入 common.py。在 resources 區段中,VM 的 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

預做準備:更新部署作業

接下來,瞭解如何隨著應用程式的發展,新增、刪除和變更部署作業中的資源屬性。