トラブルシューティング AWS Proton - AWS Proton

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

トラブルシューティング AWS Proton

に関する問題のトラブルシューティングについて説明します AWS Proton。

AWS CloudFormation 動的パラメータを参照するデプロイエラー

CloudFormation 動的変数を参照するデプロイエラーが表示された場合、それらが Jinja エスケープされていることを確認してください。これらのエラーは、動的変数の Jinja の誤解釈に起因する可能性があります。CloudFormation 動的パラメータ構文は、 AWS Proton パラメータで使用する Jinja 構文と非常によく似ています。

CloudFormation 動的変数の構文の例:

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

AWS Proton パラメータ Jinja 構文の例:

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

こういった誤解釈エラーを回避するには、以下の例に示すように、CloudFormation 動的パラメータをエスケープします。

この例は AWS CloudFormation ユーザーガイドのものです。 AWS Secrets Manager secret-name セグメントと json-key セグメントを使用して、シークレットに保存されているサインイン認証情報を取得できます。

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

CloudFormation の動的パラメータをエスケープする方法には 2 とおりがあります。

  • ブロックを {% 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 %}'
  • パラメータを "{{ }}" で囲む:

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

詳細については、「Jinja escaping」(Jinja エスケープ処理) を参照してください。