Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

701
Vistas
Obtenga valor del almacén de parámetros de AWS Systems Manager durante la implementación de Elastic Beanstalk

Tengo una cadena de conexión de base de datos almacenada en el almacén de parámetros de AWS Systems Manager que quiero pasar a las variables de entorno de una instancia de Elastic Beanstalk. No quiero comprometerlo con el código fuente ni tener que confiar en que el implementador establezca los valores en la implementación o hacerlo manualmente a través de la consola web.

Probé referencias dinámicas como {{resolve:ssm:DATABASE_CONNECTION_STRING:1}} (con y sin tildes) que funcionan en las pilas de CloudFormation pero no en la configuración de Elastic Beanstalk.

He intentado usar container_commands como

export DATABASE_CONNECTION_STRING=`aws ssm get-parameter --name DATABASE_CONNECTION_STRING --region eu-west-1 --query Parameter.Value --output text

pero la instancia de Elastic Beanstalk no tiene los permisos correctos y no estoy seguro de cómo configurarlos.

Intenté crear un archivo a partir del contenido de un archivo S3 usando files: y source: pero obtuve errores.

Idealmente, las referencias dinámicas funcionarían, por ejemplo .ebextensions/env.config =>

 OptionSettings: aws:elasticbeanstalk:application:environment: DATABASE_CONNECTION_STRING: {{resolve:ssm:ANNOTATOR_DATABASE_CONNECTION_STRING:1}}
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Pude hacer que esto funcionara creando el archivo .ebextensions/options.config con el contenido:

 option_settings: aws:elasticbeanstalk:application:environment: ENCRYPT_CERT: '{{resolve:ssm:SOA_ENCRYPT_CERT:1}}' ENCRYPT_KEY: '{{resolve:ssm:SOA_ENCRYPT_KEY:1}}'
over 4 years ago · Santiago Trujillo Denunciar

0

He optado por una configuración de files que descarga un archivo de S3 en /tmp/app.env y luego la aplicación Python usa load_dotenv('/tmp/app.env') . No es ideal, pero funciona por ahora.

Aquí está el .ebextensions/env.config :

 Resources: AWSEBAutoScalingGroup: Metadata: AWS::CloudFormation::Authentication: S3Auth: type: "s3" buckets: ["S3_BUCKET_NAME"] roleName: "Fn::GetOptionSetting": Namespace: "aws:autoscaling:launchconfiguration" OptionName: "IamInstanceProfile" DefaultValue: "aws-elasticbeanstalk-ec2-role" files: "/tmp/app.env": mode: "444" owner: wsgi group: wsgi authentication: "S3Auth" source: https://URL_TO_S3_BUCKET/app.env

Asegúrese de cambiar S3_BUCKET_NAME y URL_TO_S3_BUCKET a su configuración.

Luego, en Python uso;

 if os.path.exists('/tmp/app.env'): load_dotenv('/tmp/app.env') else: load_dotenv('.env')
over 4 years ago · Santiago Trujillo Denunciar

0

Debe usar comillas simples en su archivo de configuración, en el navegador puede pegarlo sin comillas.

 DATABASE_CONNECTION_STRING: '{{resolve:ssm:ANNOTATOR_DATABASE_CONNECTION_STRING:1}}'

Si actualizas el parámetro cambia el 1 al final a la versión que es. Entonces, si lo actualizó una vez después de crear la clave de parámetro, será 2 .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda