Durante lo sviluppo di un'app, molto probabilmente hai bisogno di architetture complesse. Per simplificare la replica e la risoluzione dei problemi di deployment, ti consigliamo di suddividere la configurazione in modelli.
Un modello è un file separato che definisce un insieme di risorse. Puoi riutilizzare di modelli in diversi deployment, in modo da garantire coerenza tra i modelli deployment di machine learning.
Puoi utilizzare Python o Jinja2 per creare modelli per Deployment Manager. Ti consigliamo di utilizzare i modelli Python, perché Python consente una maggiore flessibilità e più funzionalità man mano che scala la tua app.
Modelli Python
Se scegli di scrivere modelli in Python, i modelli devono soddisfare questi requisiti:
Il modello deve essere scritto in Python 3.x
Il modello deve definire un metodo chiamato
GenerateConfig(context)
ogenerate_config(context)
. Se utilizzi entrambi i nomi di metodi nello stesso modello, il metodogenerate_config()
avrà la precedenza.L'oggetto
context
contiene metadati sul deployment e su dell'ambiente di deployment, ad esempio il nome del deployment, il progetto attuale e così via. Utilizzerai queste variabili specifiche del deployment nei passaggi successivi.Il metodo deve restituire un dizionario Python.
Esaminare i modelli di esempio
Dal repository di esempi, apri vm-template.py
:
cd deploymentmanager-samples/examples/v2/step_by_step_guide/step5_create_a_template/python
nano vm-template.py # use your preferred text editor
Questo modello definisce la prima macchina virtuale (VM) dagli esempi precedenti:
Apri il secondo modello, vm-template-2.py
, che definisce la seconda VM:
In entrambi i modelli, sostituisci MY_PROJECT con il tuo dell'ID progetto.
Importazione di modelli
Dopo aver creato i modelli, devi importarli nella configurazione. Aperto
il nuovo two-vms.yaml
:
cd deploymentmanager-samples/examples/v2/step_by_step_guide/step5_create_a_template/python
nano two-vms.yaml # use your preferred text editor
Questo file di configurazione contiene una nuova sezione imports
che chiama i due modelli VM vm-template.py
e vm-template-2.py
:
Una nota sui nomi delle risorse
Quando utilizzi un modello, i nomi delle risorse vengono definiti utilizzando il campo name
fornito nel modello, non il nome nel file di configurazione.
Ad esempio, in questo caso, le istanze VM vengono create utilizzando i nomi nei modelli the-first-vm
e the-second-vm
. I valori vm-1
e vm-2
,
definiti nella configurazione, vengono utilizzati
per assegnare un nome a un'istanza del modello,
ma non sono nomi di risorse.
Salvataggio e deployment della configurazione in corso...
Per eseguire il deployment della configurazione, esegui questo comando:
gcloud deployment-manager deployments create deployment-with-templates --config two-vms.yaml
Per visualizzare il deployment, esegui questo comando:
gcloud deployment-manager deployments describe deployment-with-templates
Prospettive future: utilizzo di più modelli
Nel passaggio successivo, combini i modelli in modo che la configurazione chiami solo un modello per eseguire il deployment di tutte le risorse.
Eliminazione del deployment in corso...
Prima di procedere, ti consigliamo di eliminare il deployment per evitare addebiti. Questo deployment non è necessario per il passaggio successivo. Esegui questo comando per elimina il deployment:
gcloud deployment-manager deployments delete deployment-with-templates