Ao desenvolver um aplicativo, você provavelmente precisará de arquiteturas complexas. Para facilitar a replicação e a solução de problemas na implantação, recomendamos que você divida a configuração em modelos.
Um modelo é um arquivo separado que define um conjunto de recursos. É possível reutilizar modelos em diferentes implantações, o que gera consistência em implantações complexas.
É possível usar o Python ou o Jinja2 para criar modelos para o Deployment Manager. Recomendamos o uso de modelos Python porque ele fornece maior flexibilidade e mais recursos conforme você dimensiona seu aplicativo.
Modelos no Python
Para gravar modelos no Python, eles precisam atender a estes requisitos:
O modelo deve ser escrito em Python 3.x
É preciso que seja definido pelo modelo um método chamado
GenerateConfig(context)
ougenerate_config(context)
. Se você usar os dois nomes de método no mesmo modelo, o métodogenerate_config()
terá precedência.O objeto
context
contém metadados sobre a implantação e seu ambiente, como o nome da implantação, o projeto atual e assim por diante. Você usará essas variáveis específicas da implantação nas etapas posteriores.O método precisa retornar um dicionário de Python.
Como examinar modelos de amostra
No repositório de amostras, 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) das amostras anteriores:
Abra o segundo modelo, vm-template-2.py
, que define a segunda VM:
Em ambos os modelos, substitua MY_PROJECT pelo ID do projeto.
Como importar modelos
Depois de criar modelos, você precisa importá-los para sua configuração. Abra o novo 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
Este arquivo de configuração tem uma nova seção imports
que chama os dois modelos de VM, vm-template.py
e vm-template-2.py
:
Uma observação sobre nomes de recursos
Quando você usa um modelo, os nomes dos recursos são definidos usando o campo name
fornecido no modelo, não o nome no arquivo de configuração.
Por exemplo, nesse caso, as instâncias de VM são criadas usando os nomes nos
modelos the-first-vm
e the-second-vm
. Os valores vm-1
e vm-2
,
definidos na configuração, são usados para nomear uma instância do modelo,
mas não são nomes de recurso.
Como salvar e implantar a configuração
Para implantar a configuração, execute este comando:
gcloud deployment-manager deployments create deployment-with-templates --config two-vms.yaml
Para ver a implantação, execute este comando:
gcloud deployment-manager deployments describe deployment-with-templates
Pensando no futuro: como usar vários modelos
Na próxima etapa, combine modelos para que sua configuração chame apenas um modelo para implantar todos os recursos.
Como excluir a implantação
Antes de continuar, recomendamos que você exclua a implantação para evitar cobranças. Você não precisa desta implantação para a próxima etapa. Execute o seguinte comando para excluir a implantação:
gcloud deployment-manager deployments delete deployment-with-templates