Pemecahan masalah AWS CloudFormation Guard - AWS CloudFormation Guard

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

Pemecahan masalah AWS CloudFormation Guard

Jika Anda mengalami masalah saat bekerja dengan AWS CloudFormation Guard, lihat topik di bagian ini.

Klausul gagal ketika tidak ada sumber daya dari jenis yang dipilih

Ketika kueri menggunakan filter sepertiResources.*[ Type == 'AWS::ApiGateway::RestApi' ], jika tidak ada AWS::ApiGateway::RestApi sumber daya dalam input, klausa akan dievaluasi. FAIL

%api_gws.Properties.EndpointConfiguration.Types[*] == "PRIVATE"

Untuk menghindari hasil ini, tetapkan filter ke variabel dan gunakan pemeriksaan when kondisi.

let api_gws = Resources.*[ Type == 'AWS::ApiGateway::RestApi' ] when %api_gws !empty { ...}

Guard tidak mengevaluasi CloudFormation template dengan referensi bentuk pendek Fn::GetAtt

Penjaga tidak mendukung bentuk pendek fungsi intrinsik. Misalnya, penggunaan!Join, !Sub dalam AWS CloudFormation template berformat YAML tidak didukung. Sebaliknya, gunakan bentuk fungsi CloudFormation intrinsik yang diperluas. Misalnya, gunakanFn::Join, Fn::Sub dalam CloudFormation templat berformat YAML saat mengevaluasinya terhadap aturan Guard.

Untuk informasi selengkapnya tentang fungsi intrinsik, lihat referensi fungsi intrinsik di Panduan Pengguna.AWS CloudFormation

Topik pemecahan masalah umum

  • Verifikasi bahwa string literal tidak berisi string escaped yang disematkan. Guard tidak mendukung string pelarian yang disematkan dalam string literal. Jika maksud Anda adalah mengurai string JSON sebaris, gunakan json_parse() fungsi yang tersedia di Guard 3.0.0 dan yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan fungsi bawaan.

  • Verifikasi bahwa != perbandingan Anda membandingkan tipe data yang kompatibel. Misalnya, a string dan an int bukan tipe data yang kompatibel untuk perbandingan. Saat melakukan != perbandingan, jika nilainya tidak kompatibel, kesalahan terjadi secara internal. Saat ini, kesalahan ditekan dan dikonversi false untuk memenuhi PartialEqsifat di Rust.