Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

699
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!