Uno dei vantaggi dell'utilizzo dei modelli è la possibilità di creare e definire proprietà personalizzate per i modelli. Le proprietà del modello sono variabili arbitrarie definite nei file del modello. Qualsiasi file di configurazione o file modello che utilizza il modello in questione può fornire un valore per la proprietà modello senza modificare direttamente il modello. In questo modo puoi astrarre la proprietà in modo da poter modificare il valore della proprietà per ogni configurazione univoca senza aggiornare il modello sottostante.
Ad esempio, la riga seguente specifica una proprietà modello nell'URL del tipo di macchina:
machineType: zones/{{ properties["zone"] }}/machineTypes/n1-standard-1
In una configurazione che utilizza questo modello, puoi impostare il valore di zone
nella sezione properties
del modello:
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Deployment Manager saprà di poter trasferire il valore di zone
al modello sottostante.
Prima di iniziare
- Se vuoi utilizzare gli esempi di riga di comando di questa guida, installa lo strumento a riga di comando "gcloud".
- Se vuoi utilizzare gli esempi di API riportati in questa guida, configura l'accesso API.
- Scopri come creare un modello di base.
- Scopri come creare una configurazione
Creazione di una proprietà modello
Per creare una proprietà modello:
Jinja
In Jinja, definisci una proprietà utilizzando la seguente sintassi:
{{ properties["PROJECT_NAME"] }}
Ad esempio:
Python
In Python, definisci una proprietà utilizzando la seguente sintassi:
context.properties["PROPERTY_NAME"]
Ad esempio:
Per l'esempio completo di Python, consulta il repository GitHub di Deployment Manager.
Impostazione dei valori per le proprietà del modello nella configurazione di primo livello
Nella configurazione di primo livello, puoi impostare i valori per le proprietà del modello utilizzando la sintassi:
imports: - path: vm_template.jinja resources: - name: my-vm type: vm_template.jinja properties: zone: us-central1-a
Devi impostare i valori per tutte le proprietà del modello nel modello. Ad esempio,
se un modello ha proprietà modello zone
, image
, network
, devi
definire i valori per tutte queste proprietà nella configurazione di primo livello.
Se alcune proprietà del modello hanno valori predefiniti, ti consigliamo di utilizzare gli schemi per impostarli. Una proprietà del modello con un valore predefinito può essere omessa dalla configurazione di primo livello se il valore predefinito è appropriato per il deployment.
Impostazione dei valori per le proprietà del modello nella riga di comando
Invece di fornire valori per le proprietà del modello nel file principale importando il modello, Deployment Manager offre la possibilità di impostarli direttamente in Google Cloud CLI. Puoi saltare la creazione del file YAML di primo livello; Deployment Manager genererà automaticamente una configurazione di primo livello per il deployment in base alle informazioni della richiesta.
Ad esempio, supponiamo di avere il seguente modello che ha una proprietà modello denominata zone
:
Con Google Cloud CLI, puoi trasferire direttamente questo file modello e fornire i valori per le proprietà del modello sulla riga di comando. Ad esempio, la seguente richiesta viene trasmessa nel modello e specifica la proprietà zone
direttamente nella riga di comando:
gcloud deployment-manager deployments create a-single-vm --template vm_template.jinja \
--properties zone:us-central1-a
Tieni presente che:
Tutti i valori vengono analizzati come valori YAML. Ad esempio,
version: 3
viene trasmesso come numero intero. Se vuoi specificarlo come stringa, inserisci il valoreversion: \'3\'
tra virgolette singole con caratteri di escape.I valori booleani non fanno distinzione tra maiuscole e minuscole, pertanto
TRUE
,true
eTrue
vengono trattati allo stesso modo.Devi trasmettere tutte le proprietà obbligatorie definite dal modello. Non puoi fornire solo un sottoinsieme delle proprietà. Se alcune proprietà hanno valori predefiniti, puoi ometterla dalla riga di comando.
Per specificare più proprietà, fornisci coppie chiave-valore separate da virgole. Non è importante nell'ordine in cui specifichi le coppie. Ad esempio:
gcloud deployment-manager deployments create my-igm \ --template vm_template.jinja \ --properties zone:us-central1-a,machineType:n1-standard-1,image:debian-9
Dopo aver eseguito questo comando, Deployment Manager crea un deployment utilizzando il modello fornito. Puoi confermare che il deployment sia stato creato utilizzando la console Google Cloud o gcloud CLI. Per informazioni sulla visualizzazione di un deployment, consulta Visualizzazione di un manifest.
Passaggi successivi
- Compilare le informazioni sui progetti e sui deployment utilizzando le variabili di ambiente.
- Aggiungi definitivamente un modello al tuo progetto come tipo composito.
- Ospita i modelli all'esterno per condividerli con altri utenti.