Risoluzione dei problemi AWS Proton - AWS Proton

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi AWS Proton

Scopri come risolvere i problemi con. AWS Proton

Errori di distribuzione che fanno riferimento AWS CloudFormation a parametri dinamici

Se vedi errori di distribuzione che fanno riferimento alle tue variabili CloudFormation dinamiche, verifica che si tratti di Jinja Escape. Questi errori possono essere causati da un'interpretazione errata da parte di Jinja delle variabili dinamiche. La sintassi CloudFormation dinamica dei parametri è molto simile alla sintassi Jinja che usi con i tuoi parametri. AWS Proton

Esempio di sintassi CloudFormation dinamica delle variabili:

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

Esempio di AWS Proton sintassi Jinja del parametro:

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

Per evitare questi errori di interpretazione, Jinja evita i parametri CloudFormation dinamici come mostrato negli esempi seguenti.

Questo esempio è tratto dalla Guida per l' AWS CloudFormation utente. I AWS Secrets Manager segmenti secret-name e json-key possono essere utilizzati per recuperare le credenziali di accesso memorizzate nel segreto.

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}}'

Per sfuggire ai parametri dinamici è possibile utilizzare due metodi CloudFormation diversi:

  • Racchiudi un blocco tra{% 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 %}'
  • Racchiudi un parametro tra: "{{ }}"

    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}}' }}"

Per informazioni, vedi Jinja Escaping.