Fehlerbehebung für AWS Proton - AWS Proton

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Fehlerbehebung für AWS Proton

Erfahren Sie, wie Sie in eine Fehlersuche fürAWS Proton.

Bereitstellungsfehler, die aufAWS CloudFormation dynamische Parameter verweisen

Wenn Sie Bereitstellungsfehler sehen, die auf Ihre CloudFormation dynamischen Variablen verweisen, stellen Sie sicher, dass es sich um Jinja-Escape-Variablen handelt. Diese Fehler können durch eine Fehlinterpretation Ihrer dynamischen Variablen durch Jinja verursacht werden. Die CloudFormation dynamische Parametersyntax ist der Jinja-Syntax, die Sie für IhreAWS Proton Parameter verwenden, sehr ähnlich.

Beispiel für eine CloudFormation dynamische Variablensyntax:

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

Beispiel für die Jinja-Syntax einesAWS Proton Parameters:

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

Um diese Fehlinterpretationsfehler zu vermeiden, maskiert Jinja Ihre CloudFormation dynamischen Parameter, wie in den folgenden Beispielen gezeigt.

Dieses Beispiel stammt aus demAWS CloudFormation Benutzerhandbuch. Die SegmenteAWS Secrets Manager Secret-Name und JSON-Key können verwendet werden, um die im Secret gespeicherten Anmeldeinformationen abzurufen.

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

Um den CloudFormation dynamischen Parametern zu entkommen, können Sie zwei verschiedene Methoden verwenden:

  • Einen Block einschließen zwischen{% 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 %}'
  • Füge einen Parameter ein zwischen"{{ }}":

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

Weitere Informationen finden Sie unter Jinja auf der Flucht.