Para cada uma das suas implantações, o Deployment Manager cria variáveis de ambiente predefinidas, contendo informações inferidas da sua implantação. Use essas variáveis de ambiente nos modelos Python ou Jinja2 para conseguir informações sobre seu projeto ou sua implantação.
Antes de começar
- Para usar os exemplos de linha de comando deste guia, instale a ferramenta de linha de comando "gcloud".
- Para usar os exemplos de API deste guia, configure o acesso de API.
- Entenda como criar um modelo básico.
- Entenda como criar uma configuração.
Variáveis de ambiente disponíveis
As variáveis de ambiente a seguir são definidas automaticamente pelo Deployment Manager.
Elas serão substituídas em todos os lugares que você as utilizar nos modelos. Por exemplo, use a variável project_number
para adicionar o número do projeto ao nome de uma conta de serviço.
Variável de ambiente | Valor |
---|---|
deployment |
O nome da implantação. |
name |
O name declarado na configuração que está usando o modelo. Isso poderá ser útil se você quiser que o nome declarado na configuração seja o nome do recurso nos modelos de base. |
project |
O código do projeto da implantação. |
project_number |
O número do projeto da implantação. |
current_time |
O carimbo de data/hora UTC correspondente ao início da expansão da implantação. |
type |
O tipo de recurso declarado na configuração de nível superior. |
username |
O usuário atual do Deployment Manager. |
Como usar uma variável de ambiente
Use a seguinte sintaxe para adicionar uma variável de ambiente aos modelos:
{{ env["deployment"] }} # Jinja context.env["deployment"] # Python
No modelo, use as variáveis conforme mostrado nestes exemplos:
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}
A seguir
- Adicione um modelo permanentemente ao projeto como tipo composto.
- Hospede modelos externamente para compartilhá-los com outros.
- Adicione esquemas para garantir que os usuários interajam corretamente com os modelos.