Utilizzo di variabili di ambiente specifiche per il deployment

Per ogni deployment, Deployment Manager crea variabili di ambiente predefinite che contengono informazioni dedotte dal deployment. Utilizza queste variabili di ambiente nei tuoi modelli Python o Jinja2 per ottenere informazioni sul tuo progetto o deployment.

Prima di iniziare

Variabili di ambiente disponibili

Le seguenti variabili di ambiente vengono impostate automaticamente da Deployment Manager. Vengono sostituiti ovunque li utilizzi nei tuoi modelli. Ad esempio, utilizza la variabile project_number per aggiungere il numero di progetto al nome di un account di servizio.

Variabile di ambiente Valore
deployment Il nome del deployment.
name Il name dichiarato nella configurazione che utilizza il modello. Ciò può essere utile se vuoi che il nome dichiarato nella configurazione sia il nome della risorsa nei modelli sottostanti.
project L'ID progetto per questo deployment.
project_number Il numero di progetto per questo deployment.
current_time Il timestamp UTC in cui è iniziata l'espansione per il deployment.
type Il tipo di risorsa dichiarato nella configurazione di primo livello.
username L'utente Deployment Manager corrente.

Utilizzo di una variabile di ambiente

Utilizza la seguente sintassi per aggiungere una variabile di ambiente ai tuoi modelli:

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

context.env["deployment"] # Python

Nel modello, utilizza le variabili come in questi esempi:

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}

Passaggi successivi