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.
Los archivos de configuración que utilizan el operador de reemplazo son plantillas. Al crear una aplicación a partir de una plantilla, esta utiliza una copia de los archivos de configuración que reflejan los valores resueltos en el momento de su creación. Puede usar la misma plantilla para crear varias aplicaciones con diferentes configuraciones.
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
Los siguientes entornos configuran diferentes nombres de clúster de MongoDB Atlas:
{ "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
El siguiente archivo de configuración de plantilla para la fuente de datos mongodb-atlas utiliza expansiones para resolver dinámicamente clusterName según el entorno:
{ "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.