Pemecahan masalah AWS Proton - AWS Proton

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemecahan masalah AWS Proton

Belajarlah untuk memecahkan masalah dengan. AWS Proton

Kesalahan penerapan yang mereferensikan parameter AWS CloudFormation dinamis

Jika Anda melihat kesalahan penerapan yang mereferensikan variabel CloudFormation dinamis Anda, verifikasi bahwa mereka adalah Jinja yang lolos. Kesalahan ini dapat disebabkan oleh salah tafsir Jinja terhadap variabel dinamis Anda. Sintaks parameter CloudFormation dinamis sangat mirip dengan sintaks Jinja yang Anda gunakan dengan parameter Anda. AWS Proton

Contoh sintaks variabel CloudFormation dinamis:

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

Contoh AWS Proton parameter sintaks Jinja:

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

Untuk menghindari kesalahan salah tafsir ini, Jinja lolos dari parameter CloudFormation dinamis Anda seperti yang ditunjukkan pada contoh berikut.

Contoh ini dari Panduan AWS CloudFormation Pengguna. Segmen AWS Secrets Manager secret-name dan json-key dapat digunakan untuk mengambil kredenal masuk yang disimpan dalam rahasia.

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

Untuk menghindari parameter CloudFormation dinamis, Anda dapat menggunakan dua metode berbeda:

  • Lampirkan blok antara{% 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 %}'
  • Lampirkan parameter antara"{{ }}":

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

Untuk informasi, lihat Jinja melarikan diri.