翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トラブルシューティング AWS Proton
に関する問題のトラブルシューティングについて説明します AWS Proton。
AWS CloudFormation 動的パラメータを参照するデプロイエラー
CloudFormation 動的変数を参照するデプロイエラーが表示された場合、それらが 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