Per ogni deployment, Deployment Manager crea variabili di ambiente predefinite che contengono informazioni dedotte dal deployment. Utilizza queste variabili di ambiente nei modelli Python o Jinja2 per ottenere informazioni sul progetto o sul deployment.
Prima di iniziare
- Se vuoi utilizzare gli esempi a riga di comando di questa guida, installa lo strumento a riga di comando "gcloud".
- Se vuoi utilizzare gli esempi di API descritti in questa guida, configura l'accesso alle API.
- Scopri come creare un modello di base.
- Scopri come creare una configurazione
Variabili di ambiente disponibili
Le seguenti variabili di ambiente vengono impostate automaticamente da Deployment Manager.
e vengono sostituiti ovunque li utilizzi nei 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 valore name dichiarato nella configurazione che utilizza il modello. Questo 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 del progetto per questo deployment. |
current_time |
Il timestamp UTC al momento dell'inizio dell'espansione del deployment. |
type |
Il tipo di risorsa dichiarato nella configurazione di primo livello. |
username |
L'utente corrente di Deployment Manager. |
Utilizzo di una variabile di ambiente
Utilizza la sintassi seguente per aggiungere una variabile di ambiente ai tuoi modelli:
{{ env["deployment"] }} # Jinja context.env["deployment"] # Python
Nel modello, utilizza le variabili come indicato nei seguenti 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
- Aggiungi definitivamente un modello al tuo progetto come tipo composito.
- Ospita i modelli all'esterno per condividerli con altri utenti.
- Aggiungi schemi per assicurarti che gli utenti interagiscano correttamente con i tuoi modelli.