Questa pagina descrive come creare una configurazione che può essere utilizzata per creare un deployment. Per saperne di più sui deployment, consulta Creare un deployment.
Un file di configurazione definisce tutte le Google Cloud risorse che compongono un deployment. Per creare un deployment, devi avere un file di configurazione. Un file di configurazione deve essere scritto in sintassi YAML.
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.
- Comprendi le nozioni di base sui file di configurazione.
Struttura del file di configurazione
Un file di configurazione è scritto in formato YAML e ha la seguente struttura:
# imported templates, if applicable
imports:
# path relative to the configuration file
- path: path/to/template.jinja
name: my-template
- path: path/to/another/template.py
name: another-template
resources:
- name: NAME_OF_RESOURCE
type: TYPE_OF_RESOURCE
properties:
property-a: value
property-b: value
...
property-z: value
- name: NAME_OF_RESOURCE
type: TYPE_OF_RESOURCE
properties:
property-a: value
property-b: value
...
property-z: value
Ogni sezione definisce una parte diversa del deployment:
La sezione
importsè un elenco di file di modelli che verranno utilizzati dalla configurazione. Deployment Manager espande in modo ricorsivo tutti i modelli importati per formare la configurazione finale.La sezione
resourcesè un elenco di risorse che compongono questo deployment. Una risorsa può essere:- Un tipo di base gestito da Google, ad esempio un'istanza VM di Compute Engine.
- Un modello importato
- Un tipo composto.
- Un provider di tipi.
Puoi anche includere altre sezioni facoltative, come le sezioni outputs e metadata. La sezione outputs ti consente di
esporre i dati dei modelli e delle configurazioni come output
per altri modelli nello stesso deployment o come output per gli
utenti finali, mentre la sezione metadata ti consente di utilizzare altre funzionalità, come l'impostazione di
dipendenze esplicite
tra le risorse.
Come minimo, una configurazione deve sempre dichiarare la sezione resources, seguita da un elenco di risorse. Le altre sezioni sono facoltative.
Dichiarare un tipo di risorsa
Ogni risorsa nella configurazione deve essere specificata come tipo. I tipi possono essere un tipo di base gestito da Google, un tipo composto, un provider di tipi o un modello importato.
I tipi di base gestiti da Google sono tipi che vengono risolti in Google Cloud risorse. Ad esempio, un'istanza Cloud SQL o un bucket Cloud Storage è un tipo di base gestito da Google. Puoi dichiarare questi tipi utilizzando la seguente sintassi:
type: <api>.<api-version>.<resource-type>
Ad esempio, un'istanza Compute Engine avrebbe il seguente tipo:
type: compute.v1.instance
Per un database BigQuery, il tipo potrebbe essere:
type: bigquery.v2.dataset
Per un elenco di tutti i tipi supportati, utilizza il seguente comando:
gcloud deployment-manager types list
Per un elenco completo dei tipi di base gestiti da Google supportati, consulta Tipi di risorse supportati.
Se utilizzi un tipo composto o un provider di tipi, dichiara il tipo come segue:
# Composite type
resources:
- name: my-composite-type
type: [PROJECT]/composite:[TYPE_NAME]
Per un provider di tipi:
# Base type
resources:
- name: my-base-type
type: [PROJECT_ID]/[TYPE_PROVIDER_NAME]:[TYPE_NAME]
Puoi anche creare risorse utilizzando i provider di tipi gestiti da Google (beta). Per un elenco dei Google Cloud provider di tipi, consulta Provider di tipi supportati.
Se vuoi utilizzare i modelli,
dichiara il modello come tipo, con il nome o il percorso del modello come valore di type.
Ad esempio, la seguente configurazione importa un modello denominato my_vm_template.jinja e lo fornisce come tipo:
imports:
- path: path/to/template/my_vm_template.jinja
name: my-template.jinja
resources:
- name: my-first-virtual-machine
type: my-template.jinja
Per saperne di più sui modelli, consulta Creare un modello di base.
Dichiarare le proprietà delle risorse
Dopo aver dichiarato il tipo di risorsa, devi anche assegnare alla risorsa un name e specificare le proprietà che vuoi per la risorsa. Ad esempio, il seguente file di configurazione definisce un'istanza di macchina virtuale denominata vm-created-by-deployment-manager e le relative proprietà desiderate. Deployment Manager utilizza queste informazioni per creare un'istanza VM con queste proprietà.
Per determinare le properties di una risorsa, utilizza la documentazione dell'API per la risorsa:
- Consulta il formato della richiesta nel metodo
insertocreateper la risorsa. - Se l'URI della richiesta contiene la zona, aggiungila alle proprietà.
Per gli array, utilizza la sintassi dell'elenco YAML per elencare gli elementi dell'array. Ad esempio, se crei un'istanza Compute Engine utilizzando l'API, devi fornire un array di dischi da collegare all'istanza, nel seguente formato:
"disks": [ { "type": "PERSISTENT", "deviceName": "disk1", ... }, { "type": "PERSISTENT", "deviceName": "disk2", ... } ]Nella configurazione di Deployment Manager, aggiungi questi dischi utilizzando la seguente sintassi:
disks: - deviceName: disk1 type: PERSISTENT ... - deviceName: disk2 type: PERSISTENT
Puoi anche fornire qualsiasi proprietà scrivibile della risorsa. Per determinare se una proprietà è scrivibile, utilizza la documentazione di riferimento dell'API per il tipo di risorsa. Ad esempio, il riferimento di Compute Engine contrassegna alcune proprietà come di sola emissione, quindi non puoi definire queste proprietà nella configurazione, perché sono immutabili.
Alcune API richiedono un insieme minimo di proprietà per la creazione di una risorsa. Un disco permanente Compute Engine, ad esempio, richiede il nome del disco, l'origine dell'immagine, le dimensioni del disco e così via, quando crei un nuovo disco. Per informazioni su una risorsa specifica, consulta il riferimento API per quella risorsa.
Definizione delle proprietà del modello
Se importi un modello da utilizzare nella configurazione, utilizzerai la properties
sezione per definire i valori delle
proprietà del modello
anziché delle proprietà delle risorse. In alternativa, se il modello non ha proprietà del modello, puoi omettere completamente la sezione properties.
Creare risorse da Google Cloud servizi diversi
Infine, un file di configurazione può creare risorse da servizi diversi Google Cloud. Ad esempio, il seguente file di configurazione crea risorse da Compute Engine e BigQuery:
Tipi e proprietà delle risorse supportati
Consulta l'elenco completo delle risorse gestite da Google supportate nella documentazione Tipi di risorse supportati.
Passaggi successivi
- Visualizza l'anteprima della configurazione prima di eseguirne il commit per il deployment.
- Una volta soddisfatto della configurazione, utilizzala per creare un deployment.
- Infine, dovresti prendere in considerazione la possibilità di rielaborare i file di configurazione per utilizzare i modelli.