Para cada uma das suas implementações, o Deployment Manager cria variáveis de ambiente predefinidas que contêm informações inferidas da sua implementação. Use estas variáveis de ambiente nos seus modelos Python ou Jinja2 para obter informações sobre o seu projeto ou implementação.
Antes de começar
- Se quiser usar os exemplos de linhas de comando neste guia, instale a ferramenta de linhas de comando`gcloud`.
- Se quiser usar os exemplos de API neste guia, configure o acesso à API.
- Compreenda como criar um modelo básico.
- Compreenda como criar uma configuração
Variáveis de ambiente disponíveis
As seguintes variáveis de ambiente são definidas automaticamente pelo Deployment Manager.
São substituídas em todos os locais onde as usa nos seus 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 implementação. |
name |
O name declarado na configuração que está a usar o modelo. Isto pode ser útil se quiser que o nome que declara na configuração seja o nome do recurso nos modelos subjacentes. |
project |
O ID do projeto desta implementação. |
project_number |
O número do projeto desta implementação. |
current_time |
A data/hora UTC em que a expansão começou para a implementação. |
type |
O tipo de recurso declarado na configuração de nível superior. |
username |
O utilizador atual do Deployment Manager. |
Usar uma variável de ambiente
Use a seguinte sintaxe para adicionar uma variável de ambiente aos seus modelos:
{{ env["deployment"] }} # Jinja context.env["deployment"] # Python
No modelo, use as variáveis como 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}
O que se segue?
- Adicione um modelo permanentemente ao seu projeto como um tipo composto.
- Alojamento de modelos externos para partilhar com outras pessoas.
- Adicione esquemas para garantir que os utilizadores interagem corretamente com os seus modelos.