Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

537
Visualizações
Cloudformation y almacén de parámetros: cómo seleccionar parámetros para el entorno

Quiero leer la URL de mi base de datos desde el almacén de parámetros en mi plantilla de CloudFormation. Esto es bastante fácil para una sola URL, pero no puedo entender cómo cambiar la URL con diferentes entornos.

Tengo cuatro entornos (desarrollo, integración, preproducción y producción) y sus detalles se almacenan en cuatro rutas diferentes en el almacén de parámetros:

 /database/dev/url /database/int/url /database/ppe/url /database/prod/url

Ahora quiero elegir la URL de la base de datos correcta al implementar a través de CloudFormation. ¿Cómo puedo hacer esto?

 Parameters: Environment: Type: String Default: dev AllowedValues: - dev - int - ppe - prod DatabaseUrl: Type: 'AWS::SSM::Parameter::Value<String>' # Obviously the '+' operator here won't work - so what do I do? Default: '/database/' + Environment + '/url'
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Esta característica no es tan ordenada como uno desearía. En realidad, debe pasar el nombre/ruta de cada parámetro que desea buscar en el almacén de parámetros.

Modelo:

 AWSTemplateFormatVersion: 2010-09-09 Description: Example Parameters: BucketNameSuffix: Type: AWS::SSM::Parameter::Value<String> Default: /example/dev/BucketNameSuffix Resources: Bucket: Type: AWS::S3::Bucket Properties: BucketName: !Sub parameter-store-example-${BucketNameSuffix}

Si no pasa ningún parámetro a la plantilla, BucketNameSuffix se completará con el valor almacenado en /example/dev/BucketNameSuffix . Si desea usar, por ejemplo, un valor de producción (señalado por /example/ prod /example/prod/BucketNameSuffix ), debe especificar el valor para el parámetro BucketNameSuffix , pero en lugar de pasar el valor real, debe pasar el nombre alternativo del parámetro a usar , entonces pasaría /example/prod/BucketNameSuffix .

 aws cloudformation update-stack --stack-name example-dev \ --template-body file://./example-stack.yml aws cloudformation update-stack --stack-name example-prod \ --template-body file://./example-stack.yml \ --parameters ParameterKey=BucketNameSuffix,ParameterValue=/example/prod/BucketNameSuffix

Una publicación de blog de AWS no tan buena sobre esto: https://aws.amazon.com/blogs/mt/integrating-aws-cloudformation-with-aws-systems-manager-parameter-store/

Debido a que pasar millones de parámetros sin sentido parece estúpido, en realidad podría generar una plantilla específica del entorno y establecer el valor Default: en la plantilla generada, de modo que para el entorno de producción, el valor Default sería /example/ prod /example/prod/BucketNameSuffix y luego puedo actualizar la pila de prod sin pasar cualquier parámetro.

over 4 years ago · Santiago Trujillo Relatório

0

Puedes hacer uso de Fn::Únete aquí.

Aquí hay un pseudocódigo.

Tendrá que tomar Environment como parámetro, lo que ya está haciendo.

Creando la cadena requerida en los recursos donde se requiere DatabaseUrl.

 Resources : Instance : Type : 'AWS::Some::Resource' Properties : DatabaseURL : !Join [ "", [ "/database/", !Ref "Environment" , "/url ] ]

Espero que esto ayude.

Nota: no puede asignar un valor a un parámetro de forma dinámica utilizando alguna lógica de cálculo. Todos los valores de los parámetros definidos deben proporcionarse como Entrada.

over 4 years ago · Santiago Trujillo Relatório

0

Me gusta Fn::Sub , que es mucho más limpio y fácil de leer.

 !Sub "/database/${Environment}/url"
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda