Solución de problemas AWS Proton - AWS Proton

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas AWS Proton

Aprenda a solucionar problemas con AWS Proton.

Errores de implementación que hacen referencia a parámetros AWS CloudFormation dinámicos

Si ve errores de despliegue que hacen referencia a sus variables CloudFormation dinámicas, compruebe que se trate de Jinja escapado. Estos errores pueden deberse a una mala interpretación por parte de Jinja de las variables dinámicas. La sintaxis de los parámetros CloudFormation dinámicos es muy similar a la sintaxis de Jinja que se utiliza con los parámetros. AWS Proton

Ejemplo de sintaxis de variables CloudFormation dinámicas:

'{{resolve:secretsmanager:MySecret:SecretString:password:EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE}}'.

Ejemplo de sintaxis AWS Proton de Jinja del parámetro:

'{{ service_instance.environment.outputs.env-outputs }}'.

Para evitar estos errores de interpretación errónea, Jinja escapa de sus parámetros CloudFormation dinámicos como se muestra en los siguientes ejemplos.

Este ejemplo proviene de la Guía del AWS CloudFormation usuario. Los segmentos de AWS Secrets Manager nombre secreto y clave json se pueden usar para recuperar las credenciales de inicio de sesión almacenadas en el secreto.

MyRDSInstance: Type: AWS::RDS::DBInstance Properties: DBName: 'MyRDSInstance' AllocatedStorage: '20' DBInstanceClass: db.t2.micro Engine: mysql MasterUsername: '{{resolve:secretsmanager:MyRDSSecret:SecretString:username}}' MasterUserPassword: '{{resolve:secretsmanager:MyRDSSecret:SecretString:password}}'

Para escapar de los parámetros CloudFormation dinámicos, puede utilizar dos métodos diferentes:

  • Incluya un bloque entre {% raw %} and {% endraw %}:

    '{% raw %}' MyRDSInstance: Type: AWS::RDS::DBInstance Properties: DBName: 'MyRDSInstance' AllocatedStorage: '20' DBInstanceClass: db.t2.micro Engine: mysql MasterUsername: '{{resolve:secretsmanager:MyRDSSecret:SecretString:username}}' MasterUserPassword: '{{resolve:secretsmanager:MyRDSSecret:SecretString:password}}' '{% endraw %}'
  • Incluya un parámetro entre "{{ }}":

    MyRDSInstance: Type: AWS::RDS::DBInstance Properties: DBName: 'MyRDSInstance' AllocatedStorage: '20' DBInstanceClass: db.t2.micro Engine: mysql MasterUsername: "{{ '{{resolve:secretsmanager:MyRDSSecret:SecretString:username}}' }}" MasterUserPassword: "{{ '{{resolve:secretsmanager:MyRDSSecret:SecretString:password}}' }}"

Para obtener más información, consulte Jinja escaping.