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
- Si quieres usar los ejemplos de línea de comandos de esta guía, instala la herramienta de línea de comandos`gcloud`.
- Si quieres usar los ejemplos de API de esta guía, configura el acceso a la API.
- Aprender a crear una plantilla básica
- Consulta cómo crear una configuración.
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
- Añade una plantilla de forma permanente a tu proyecto como tipo compuesto.
- Aloja plantillas de forma externa para compartirlas con otros usuarios.
- Añade esquemas para asegurarte de que los usuarios interactúen correctamente con tus plantillas.