Usar variables de entorno específicas para el despliegue

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

Antes de empezar

Variables de entorno disponibles

Deployment Manager define automáticamente las siguientes variables de entorno. Se sustituyen en todos los lugares donde las uses en tus plantillas. Por ejemplo, usa la variable project_number para añadir el número de proyecto al nombre de una cuenta de servicio.

Variable de entorno Valor
deployment El nombre del despliegue.
name El name declarado en la configuración que usa la plantilla. Esto puede ser útil si quieres que el nombre que declares en la configuración sea el nombre del recurso en las plantillas subyacentes.
project El ID de proyecto de este despliegue.
project_number El número de proyecto de esta implementación.
current_time Marca de tiempo UTC en la que se inició 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.

Usar una variable de entorno

Usa la siguiente sintaxis para añadir una variable de entorno a tus plantillas:

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

context.env["deployment"] # Python

En tu plantilla, usa las variables como 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}

Siguientes pasos