Solução de problemas AWS Proton - AWS Proton

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solução de problemas AWS Proton

Aprenda a solucionar problemas com o. AWS Proton

Erros de implantação que fazem referência a parâmetros AWS CloudFormation dinâmicos

Se você ver erros de implantação que fazem referência às suas variáveis CloudFormation dinâmicas, verifique se elas são de escape do Jinja. Esses erros podem ser causados pela interpretação incorreta do Jinja de suas variáveis dinâmicas. A sintaxe do parâmetro CloudFormation dinâmico é muito semelhante à sintaxe do Jinja que você usa com seus parâmetros. AWS Proton

Exemplo de sintaxe de variável CloudFormation dinâmica:

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

Exemplo de sintaxe do AWS Proton parâmetro Jinja:

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

Para evitar esses erros de interpretação errônea, o Jinja escapa de seus parâmetros CloudFormation dinâmicos, conforme mostrado nos exemplos a seguir.

Este exemplo é do Guia AWS CloudFormation do usuário. Os segmentos AWS Secrets Manager secret-name e json-key podem ser usados para recuperar as credenciais de login armazenadas no segredo.

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 dos parâmetros CloudFormation dinâmicos, você pode usar dois métodos diferentes:

  • Coloque um bloco 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 %}'
  • Coloque um 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 obter informações, consulte Escape do Jinja.