amazon-web-services environment-variables aws-code-deploy

amazon web services - Variables de entorno utilizando AWS CodeDeploy



amazon-web-services environment-variables (3)

Tengo una aplicación web que utiliza variables de entorno para algunas de sus configuraciones (credenciales de base de datos, claves API, etc.). Actualmente estoy usando Elastic Beanstalk para la implementación y puedo configurarlos fácilmente desde AWS, lo cual es genial porque no tengo esta información confidencial en mi base de código.

Sin embargo, estoy considerando cambiar de Elastic Beanstalk para poder aprovechar un poco más de flexibilidad con mis instancias web y, naturalmente, estoy estudiando la implementación (desde la configuración de mi CI de código) utilizando CodeDeploy. CodeDeploy es bastante sencillo y lo he integrado con Codeship muy bien, pero noté que no hay una función incorporada para establecer variables de entorno con CodeDeploy como con Elastic Beanstalk. ¿Alguien tiene alguna práctica óptima para este proceso?


Parece que es posible utilizar variables de entorno (principalmente su DEPLOYMENT_GROUP_NAME).

Vea esta guía de Amazon.


Suponiendo que está utilizando github para administrar su código, esta es una forma potencial de administrar su entorno

Use git-crypt ( https://github.com/AGWA/git-crypt ) para cifrar información confidencial. Puede poner la clave para decodificar estos archivos en el servidor. Durante la implementación de código posterior a la fase de instalación, puede descifrar y configurar el entorno.

La ventaja es que ahora tiene toda la información en un lugar de forma segura.


Una forma que encontré para establecer variables de entorno es a través de los scripts que se ejecutan durante el enlace AfterInstall (especificado en la http://especs.awazon.com/codedeploy/latest/userguide/app-spec-ref.html).

Soy capaz de determinar el entorno en el que estoy implementando actualmente en estos scripts llamando a mis metadatos de instancias donde obtengo mi ID de instancia y luego utilizo el aws cli para ejecutar etiquetas descriptivas filtradas a mi Id de instancia donde tengo un conjunto de etiquetas para Ambiente

ID=$(curl "http://169.254.169.254/latest/meta-data/instance-id") aws --region us-east-1 ec2 describe-tags --filters Name=resource-id,Values=$ID Name=key,Values=Environment

No me gusta esto, pero hasta que Code Deploy tenga algo incorporado para pasar parámetros a la aplicación específica, esto es lo mejor que puedo encontrar.