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
- Si deseas usar los ejemplos de línea de comandos de esta guía, instala la herramienta de línea de comandos de gcloud.
- Si deseas usar los ejemplos de la API en esta guía, configura el acceso a la API.
- Aprende a crear una plantilla básica.
- Aprende a crear una configuración
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}
Pasos siguientes
- Agrega una plantilla de forma permanente a tu proyecto como un tipo compuesto.
- Aloja plantillas de manera externa para compartir con otros.
- Agrega esquemas a fin de garantizar que los usuarios interactúen con tu plantilla correctamente.