本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Proton 疑難排解
了解如何對AWS Proton.
參考AWS CloudFormation動態參數的部署錯誤
如果您看到參考CloudFormation 動態變數的部署錯誤,請確認它們是否已逸出 Jinja
CloudFormation 動態變數語法範例:
'{{resolve:secretsmanager:MySecret:SecretString:password:EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE}}'
.
示例AWS Proton參數神社語法:
'{{ service_instance.environment.outputs.env-outputs }}'
.
為了避免這些誤解錯誤,Jinja 逸出您的 CloudFormation 動態參數,如下列範例所示。
此範例來自《AWS CloudFormation使用者指南》。AWS Secrets Manager秘密名稱和 JSON 鍵段可用於檢索存儲在密鑰中的登錄憑據。
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 動態參數,您可以使用兩種不同的方法:
-
在下列項
{% 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}}' }}"
有關信息,請參見金剛逃脫