翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トラブルシューティング AWS CloudFormation Guard
の使用中に問題が発生した場合は AWS CloudFormation Guard、このセクションのトピックを参照してください。
トピック
選択したタイプのリソースが存在しない場合、句は失敗します
クエリが のようなフィルターを使用する場合Resources.*[ Type == 'AWS::ApiGateway::RestApi' ]
、入力にAWS::ApiGateway::RestApi
リソースがない場合、 句は に評価されますFAIL
。
%api_gws.Properties.EndpointConfiguration.Types[*] == "PRIVATE"
この結果を回避するには、変数にフィルタを割り当て、when
条件チェックを使用します。
let api_gws = Resources.*[ Type == 'AWS::ApiGateway::RestApi' ] when %api_gws !empty { ...}
Guard は、短い形式の Fn::GetAtt リファレンスを使用して CloudFormation テンプレートを評価しません
Guard は、短い形式の組み込み関数をサポートしていません。たとえば、YAML 形式の AWS CloudFormation テンプレート!Join
!Sub
での の使用はサポートされていません。代わりに、CloudFormation 組み込み関数の拡張形式を使用します。例えば、Guard ルールに照らして評価する場合はFn::Join
、YAML 形式の CloudFormation テンプレートFn::Sub
で を使用します。
組み込み関数の詳細については、 AWS CloudFormation ユーザーガイドの組み込み関数リファレンスを参照してください。
一般的なトラブルシューティングのトピック
-
string
リテラルにエスケープされた文字列が埋め込まれていないことを確認します。Guard はリstring
テラルの埋め込みエスケープ文字列をサポートしていません。インライン JSON 文字列を解析する場合は、Guard 3.0.0 以降で利用可能なjson_parse()
関数を使用します。詳細については、「組み込み関数の使用」を参照してください。 -
!=
比較で互換性のあるデータ型が比較されていることを確認します。たとえば、string
とint
は、比較用の互換性のないデータ型です。!=
比較を実行するときに、値が互換性がない場合、内部でエラーが発生します。現在、エラーは抑制され、Rust の PartialEq特性を満たす false
ために に変換されます。