使用特定于部署的环境变量

对于每个部署,Deployment Manager 都会创建预定义的环境变量,其中包含从部署中推断出的信息。您可以在 Python 或 Jinja2 模板中使用这些环境变量,以此获取具有独特性的项目或部署信息。

准备工作

可用的环境变量

Deployment Manager 自动设置以下环境变量。无论您将这些变量用于模板中何处,它们都会被替换。例如,使用 project_number 变量会将项目编号添加到服务账号名称中。

环境变量
deployment 部署的名称。
name 在使用模板的配置中声明的 name。如果您希望配置中声明的名称是基础模板中的资源名称,这将非常有用。
project 此部署的项目 ID
project_number 此部署的项目编号
current_time 部署开始扩展时的 UTC 时间戳。
type 在顶级配置中声明的资源类型。
username 当前的 Deployment Manager 用户。

使用环境变量

使用以下语法将环境变量添加到模板:

{{ env["deployment"] }} # Jinja

context.env["deployment"] # Python

在模板中,如以下示例所示使用变量:

Jinja

- type: compute.v1.instance
  name: vm-{{ env["deployment"] }}
  properties:
    machineType: zones/us-central1-a/machineTypes/f1-micro
    serviceAccounts:
    - email: {{ env['project_number'] }}-compute@developer.gserviceaccount.com
      scopes:
      - ...

Python

def GenerateConfig(context):
  resources = []
  resources.append ({
    'name': 'vm-' + context.env["deployment"],
    'type': 'compute.v1.instance',
    'properties': {
       'serviceAccounts': [{
         'email': context.env['project_number'] + '-compute@developer.gserviceaccount.com',
         'scopes': [...]
       }]
    }
    ...}]
  return {'resources': resources}

后续步骤