Atlas App Services admite un operador de reemplazo (%()) que resuelve dinámicamente expansiones JSON como %%environment en tus archivos de configuración. Al crear una aplicación con archivos de configuración que incluyen expansiones (ya sea con la CLI de App Services o a través de GitHub), App Services resuelve automáticamente las expansiones y usa los archivos de configuración resueltos para crear la aplicación.
Configuration files that use the replacement operator are templates. Once you create an app from a template, the app uses a copy of the configuration files that reflect the resolved values at the time the app was created. You can use the same template to create multiple apps with different configurations.
Importante
Actualmente, el operador de reemplazo solo se admite en campos de configuración con valores de cadena. No se pueden usar expansiones para valores booleanos, numéricos, de objeto ni de matriz.
Por ejemplo, puede utilizar expansiones para crear la plantilla del campo clusterName:
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "%(%%environment.values.clusterName)", "readPreference": "primaryPreferred", "wireProtocolEnabled": false } }
Pero no puedes usar expansiones para crear la plantilla del campo wireProtocolEnabled porque tiene un valor booleano:
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "Cluster0", "readPreference": "primaryPreferred", "wireProtocolEnabled": %(%%environment.values.wireProtocolEnabled) } }
Define a Template
Definir valores ambientales
Puedes usar expansiones para crear plantillas para cualquier entorno. Para cada entorno que uses, define valores a los que hagas referencia en tus archivos de configuración.
Ejemplo
The following environments configure different MongoDB Atlas cluster names:
{ "values": { "clusterName": "atlas-development" } }
{ "values": { "clusterName": "atlas-production" } }
Definir un reemplazo de expansión
Puede hacer referencia a cualquier valor de entorno de un archivo de configuración con el %() operador de reemplazo y la %%environment expansión. Defina expansiones para cada archivo de configuración que desee usar como plantilla.
Ejemplo
The following template configuration file for the mongodb-atlas data source uses expansions to dynamically resolve clusterName based on the environment:
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "%(%%environment.values.clusterName)", "readPreference": "primaryPreferred", "wireProtocolEnabled": true } }
Especificar un entorno
Elija en qué entorno implementar su aplicación y luego actualice la configuración de la aplicación con el nombre del entorno:
{ "name": "MyApp", "environment": "development", "deployment_model": "LOCAL", "location": "aws-us-east-1" }
Tip
Si no especifica un entorno, %%environment expansiones se resuelven en valores en environments/no-environment.json.
Crear una nueva aplicación con plantilla
Ahora puede utilizar sus archivos de configuración con plantilla para crear una nueva aplicación en el entorno elegido.
Ejemplo
App Services utiliza la configuración de la plantilla para generar archivos de configuración nuevos y resueltos durante la importación:
appservices push
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "atlas-development", "readPreference": "primaryPreferred", "wireProtocolEnabled": true } }
Flujo de trabajo de desarrollo
Puedes usar expansiones de configuración para cualquier aplicación, pero el caso más útil es para equipos que desarrollan una aplicación de producción con archivos de código fuente almacenados en un sistema de control de versiones externo como GitHub. Puedes crear aplicaciones independientes para desarrollar funciones o probar cambios y usar expansiones para personalizarlas según su entorno.
Crea una copia de la plantilla común con el entorno establecido
developmenten. Si usas Git, crea una nueva rama en GitHub y extrae una copia local.Realiza cambios y pruébalos localmente en la aplicación de desarrollo. Cualquier cambio que realices en la aplicación no afectará a la aplicación de producción, aunque es posible que aún puedan leer y guardar fuentes de datos y servicios de producción, a menos que configures alternativas.
Confirme la confirmación de cambios e intégralos nuevamente en producción. Puede configurar una pipeline de CI/CD, que puede crear una aplicación en el entorno
testpor sí misma, para validar y fusionar tus cambios en la rama de producción.Una vez fusionados los cambios, puedes eliminar de forma segura la aplicación de desarrollo y limpiar cualquier otro servicio asociado.