Usa variables de entorno específicas de la implementación

Para cada una de tus implementaciones, Deployment Manager crea variables de entorno predefinidas que contienen información deducida de tu implementación. Usa estas variables de entorno en tus plantillas de Python o Jinja2 para obtener información sobre tu proyecto o implementación.

Antes de comenzar

Variables de entorno disponibles

Deployment Manager configura las siguientes variables del entorno automáticamente. Se las reemplaza en cualquier lugar que las utilices en tus plantillas. Por ejemplo, usa la variable project_number para agregar el número de proyecto al nombre de una cuenta de servicio.

Variable de entorno Valor
deployment El nombre de la implementación.
name El name declarado en la configuración que utiliza la plantilla. Esta variable puede ser útil si quieres que el nombre que declaras en la configuración sea el mismo del recurso en las plantillas subyacentes.
project El ID del proyecto de esta implementación.
project_number El número del proyecto de esta implementación.
current_time La marca de tiempo UTC cuando comenzó la expansión de la implementación.
type El tipo de recurso declarado en la configuración de nivel superior.
username El usuario actual de Deployment Manager.

Usa una variable de entorno

Utiliza la siguiente sintaxis para agregar una variable de entorno a tus plantillas:

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

context.env["deployment"] # Python

En tu plantilla, utiliza las variables como se muestra en estos ejemplos:

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}

¿Qué sigue?