Uno dei vantaggi dell'utilizzo dei modelli è la possibilità di creare e definire proprietà dei modelli personalizzate. Le proprietà dei modelli sono variabili arbitrarie che definisci nei file dei modelli. Qualsiasi file di configurazione o file di modello che utilizza il modello in questione può fornire un valore per la proprietà del 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 seguente riga specifica una proprietà del 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à passare il valore di zone al modello sottostante.
Prima di iniziare
- Se vuoi utilizzare gli esempi di riga di comando in questa guida, installa lo strumento a riga di comando `gcloud`.
- Se vuoi utilizzare gli esempi di API in questa guida, configura l'accesso alle API.
- Scopri come creare un modello di base.
- Scopri come creare una configurazione
Creazione di una proprietà del modello
Per creare una proprietà del 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 GitHub.
Impostazione dei valori per le proprietà dei modelli nella configurazione di primo livello
Nella configurazione di primo livello, puoi impostare i valori per le proprietà dei modelli 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à dei modelli nel modello. Ad esempio, se un modello ha le proprietà dei modelli zone, image, network, devi definire i valori per tutte queste proprietà nella configurazione di primo livello.
Se alcune proprietà dei modelli hanno valori predefiniti, valuta la possibilità di utilizzare gli schemi per impostare questi valori predefiniti. 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à dei modelli nella riga di comando
Anziché fornire i valori per le proprietà dei modelli nel file principale che importa il modello, Deployment Manager offre la possibilità di impostare questi valori 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 contenute nella richiesta.
Ad esempio, supponiamo di avere il seguente modello con una proprietà del modello chiamata zone:
Con Google Cloud CLI, puoi passare direttamente questo file di modello e fornire i valori per le proprietà del modello nella riga di comando. Ad esempio, la seguente richiesta passa il 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: 3viene passato come numero intero. Se vuoi specificarlo come stringa, inserisci le virgolette singole di escape attorno al valore,version: \'3\'.I valori booleani non fanno distinzione tra maiuscole e minuscole, quindi
TRUE,trueeTruevengono trattati allo stesso modo.Devi passare tutte le proprietà richieste definite dal modello. Non puoi fornire solo un sottoinsieme delle proprietà. Se alcune proprietà hanno valori predefiniti, puoi omettere la proprietà dalla riga di comando.
Per specificare più proprietà, fornisci coppie chiave:valore separate da virgole. L'ordine in cui specifichi le coppie non ha importanza. Ad esempio:
gcloud deployment-manager deployments create my-igm \
--template vm_template.jinja \
--properties zone:us-central1-a,machineType:n1-standard-1,image:debian-9Dopo aver eseguito questo comando, Deployment Manager crea un deployment utilizzando il modello che hai fornito. Puoi verificare che il deployment sia stato creato utilizzando la Google Cloud console o gcloud CLI. Per informazioni sulla visualizzazione di un deployment, consulta Visualizzazione di un manifest.
Passaggi successivi
- Inserisci le informazioni sui progetti e sui deployment utilizzando le variabili di ambiente.
- Aggiungi un modello in modo permanente al progetto come tipo composito.
- Ospita i modelli esternamente per condividerli con altri utenti.