Criar configurações de modelo com expansões
Nesta página
O Atlas App Services oferece suporte a um operador de substituição (%()
) que resolve dinamicamente expansões JSON como %%environment
em seus arquivos de configuração. Quando você cria um novo aplicativo com arquivos de configuração que incluem expansões (com o App Services CLI ou por meio do GitHub), o App Services resolve automaticamente as expansões e usa os arquivos de configuração resolvidos para criar o aplicativo.
Os arquivos de configuração que usam o operador de substituição são modelos. Após criar um aplicativo a partir de um modelo, o aplicativo utiliza uma cópia dos arquivos de configuração que refletem os valores resolvidos no momento em que o aplicativo foi criado. Você pode usar o mesmo modelo para criar vários aplicativos com configurações diferentes.
Importante
Atualmente, o operador de substituição é suportado apenas para campos de configuração com valores de string. Você não pode usar expansões para valores booleanos, numéricos, de objeto ou de array.
Por exemplo, você pode utilizar expansões para modelar o campo clusterName
:
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "%(%%environment.values.clusterName)", "readPreference": "primaryPreferred", "wireProtocolEnabled": false } }
Mas você não pode usar expansões para modelar o campo wireProtocolEnabled
porque ele tem um valor booleano:
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "Cluster0", "readPreference": "primaryPreferred", "wireProtocolEnabled": %(%%environment.values.wireProtocolEnabled) } }
Definir um modelo
Definir valores de ambiente
Você pode usar expansões para criar o modelo de qualquer ambiente. Para cada ambiente que você utiliza, defina valores que você referencia em seus arquivos de configuração.
Exemplo
Os seguintes ambientes configuram diferentes nomes de MongoDB Atlas cluster:
{ "values": { "clusterName": "atlas-development" } }
{ "values": { "clusterName": "atlas-production" } }
Definir uma substituição de expansão
Você pode referenciar qualquer valor de ambiente de um arquivo de configuração com o operador de substituição %()
e a expansão %%environment
. Defina expansões para cada arquivo de configuração que você deseja modelar.
Exemplo
O seguinte arquivo de configuração de modelo para o conjunto de dados mongodb-atlas
utiliza expansões para resolver dinamicamente clusterName
com base no ambiente:
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "%(%%environment.values.clusterName)", "readPreference": "primaryPreferred", "wireProtocolEnabled": true } }
Especificar um ambiente
Escolha em qual ambiente implantar seu aplicativo e, em seguida, atualize a configuração do aplicativo com o nome do ambiente:
{ "name": "MyApp", "environment": "development", "deployment_model": "LOCAL", "location": "aws-us-east-1" }
Dica
Se você não especificar um ambiente, as expansões do %%environment
resolverão para valores no environments/no-environment.json
.
Criar um novo aplicativo modelo
Agora você pode usar seus arquivos de configuração modelo para criar um novo aplicativo no ambiente escolhido.
Exemplo
O App Services usa a configuração do modelo para gerar novos arquivos de configuração resolvidos na importação:
appservices push
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "atlas-development", "readPreference": "primaryPreferred", "wireProtocolEnabled": true } }
Fluxo de trabalho de desenvolvimento
Você pode usar expansões de configuração para qualquer aplicação, mas o caso mais útil é para equipe que desenvolve um aplicativo de produção com arquivos de código-fonte armazenados em um sistema de controle de versão externo como o GitHub. Você pode criar aplicativos independentes para desenvolver recursos ou testar alterações e usar expansões para personalizar os aplicativos com base em seu ambiente.
Crie uma cópia do modelo comum com o ambiente configurado para
development
. Se você estiver usando o Git, crie uma nova ramificação no GitHub e confira uma cópia local.Faça alterações e teste-as localmente no aplicativo de desenvolvimento. Quaisquer alterações feitas no aplicativo não afetarão o aplicativo de produção, embora eles ainda possam ler e gravar conjunto de dados e serviços de produção, a menos que você configure alternativas.
Confirme as alterações e mescle-as de volta à produção. Você pode configurar um pipeline CI/CD, que pode criar uma aplicação no ambiente
test
, para validar e mesclar suas alterações na ramificação de produção.Depois que suas alterações forem mescladas, você poderá excluir o aplicativo de desenvolvimento com segurança e limpar quaisquer outros serviços associados.