Résolution des problèmes de AWS Proton - AWS Proton

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes de AWS Proton

Découvrez comment résoudre les problèmes rencontrés avecAWS Proton.

Erreurs de déploiement faisant référence à des paramètresAWS CloudFormation dynamiques

Si vous constatez des erreurs de déploiement faisant référence à vos variablesCloudFormation dynamiques, vérifiez qu'il s'agit d'erreurs de type Jinja. Ces erreurs peuvent être causées par une mauvaise interprétation par Jinja de vos variables dynamiques. La syntaxe des paramètres CloudFormation dynamiques est très similaire à la syntaxe Jinja que vous utilisez avec vosAWS Proton paramètres.

Exemple de syntaxe de variable CloudFormation dynamique :

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

Exemple deAWS Proton syntaxe Jinja pour un paramètre :

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

Pour éviter ces erreurs d'interprétation, Jinja échappe à vos paramètres CloudFormation dynamiques, comme indiqué dans les exemples suivants.

Cet exemple provient du Guide de l'AWS CloudFormationutilisateur. Les segmentsAWS Secrets Manager secret-name et json-key peuvent être utilisés pour récupérer les informations de connexion stockées dans le secret.

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

Pour échapper aux paramètres CloudFormation dynamiques, vous pouvez utiliser deux méthodes différentes :

  • Insérez un bloc 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 %}'
  • Insérez un paramètre 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}}' }}"

Pour plus d'informations, voir Jinja s'évader.