- Abre el archivo hosting/deploy_env/task-definition.json.
- Allí, cada contenedor tiene su sección bajo containerDefinitions.
- Dentro de la definición del contenedor existen dos modos de definir variables de entorno:
- La sección de secrets define las variables de entorno cuyos valores son tomados de la configuración previamente preparada por Sperantus en AWS ParameterStore
- La sección environment define las variables de entorno a presentar al contenedor. Por ejemplo:
"environment": [
{
"name": "IS_PRODUCTION", "value": "${IS_PRODUCTION}"
},
{
"name": "SAMPLE_VAR", "value": "HARDCODED_VALUE"
}
]
- En caso de que quieras definir una variable que sea distinta en staging y producción, defínela primero en los archivos hosting/deploy_env/staging.env y hosting/deploy_env/production.env y luego úsala como placeholder en el archivo hosting/deploy_env/task-definition.json. Por ejemplo, arriba el valor "${IS_PRODUCTION}" tomaría su valor de la variable IS_PRODUCTION que debería ser definida en staging.env o production.env.
- Una vez que hagas los cambios necesarios puedes probar que el archivo JSON que se genera a raíz de esa plantilla sea correcto corriendo lo siguiente (desde la raíz de tu proyecto) para probar la configuración de producción:
hosting/hosting aws_ecs_task_definition production
Y enseguida probar la de staging:
hosting/hosting aws_ecs_task_definition staging