Ao desenvolver uma app, é muito provável que precise de arquiteturas complexas. Para facilitar a replicação e a resolução de problemas da implementação, recomendamos que divida a configuração em modelos.
Um modelo é um ficheiro separado que define um conjunto de recursos. Pode reutilizar modelos em diferentes implementações, o que cria consistência em implementações complexas.
Pode usar Python ou Jinja2 para criar modelos para o Deployment Manager. Recomendamos que use modelos Python, porque o Python permite uma maior flexibilidade e mais funcionalidades à medida que expande a sua app.
Modelos Python
Se optar por escrever modelos em Python, os seus modelos têm de cumprir estes requisitos:
O modelo tem de ser escrito em Python 3.x
O modelo tem de definir um método denominado
GenerateConfig(context)ougenerate_config(context). Se usar ambos os nomes de métodos no mesmo modelo, o métodogenerate_config()tem prioridade.O objeto
contextcontém metadados sobre a implementação e o seu ambiente, como o nome da implementação, o projeto atual, etc. Vai usar estas variáveis específicas da implementação nos passos posteriores.O método tem de devolver um dicionário Python.
Examinar modelos de exemplo
No repositório de exemplos, abra 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
Este modelo define a primeira máquina virtual (VM) dos exemplos anteriores:
Abra o segundo modelo, vm-template-2.py, que define a segunda VM:
Em ambos os modelos, substitua MY_PROJECT pelo ID do seu projeto.
Importar modelos
Depois de criar modelos, tem de os importar para a sua configuração. Abra o novo two-vms.yaml: