Solución de problemas de 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 de AWS Proton

Obtenga información sobre cómo solucionar problemas de AWS Proton.

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

Si ve errores de implementación que hagan referencia a las Variables dinámicas de CloudFormation, compruebe si son casos de Jinja escaping. Estos errores pueden deberse a una mala interpretación por parte de Jinja de las variables dinámicas. La sintaxis de los parámetros dinámicos de CloudFormation es muy similar a la sintaxis de Jinja que se utiliza con los parámetros de AWS Proton.

Ejemplo de sintaxis de variables dinámicas de CloudFormation:

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

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

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

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

Este ejemplo proviene de la Guía del usuario de AWS CloudFormation. Los segmentos de AWS Secrets Manager nombre secreto y clave json se pueden utilizar 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 los parámetros dinámicos de CloudFormation, se pueden 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.