探索帮助程序脚本

帮助程序脚本(即模板模块)属于帮助程序文件,可通过执行特定功能来提高模板效率。例如,您可以使用辅助脚本解读资源元数据、创建文件和启动服务。

现在,您将了解一个 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 部分中,虚拟机的 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

接下来:更新部署

接下来,了解如何随着应用的发展在部署中添加、删除和更改资源属性。