

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# トラブルシューティング AWS CloudFormation Guard
<a name="troubleshooting"></a>

の使用中に問題が発生した場合は AWS CloudFormation Guard、このセクションのトピックを参照してください。

**Topics**
+ [選択したタイプのリソースが存在しない場合、句は失敗します](#troubleshooting-when-conditions-filters)
+ [Guard は、短い形式の Fn::GetAtt リファレンスを使用して CloudFormation テンプレートを評価しません](#troubleshooting-cfn-intrinsic-functions)
+ [一般的なトラブルシューティングのトピック](#troubleshooting-general)

## 選択したタイプのリソースが存在しない場合、句は失敗します
<a name="troubleshooting-when-conditions-filters"></a>

クエリが のようなフィルターを使用する場合`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 テンプレートを評価しません
<a name="troubleshooting-cfn-intrinsic-functions"></a>

Guard は、短い形式の組み込み関数をサポートしていません。たとえば、YAML 形式の CloudFormation テンプレート`!Join``!Sub`での の使用はサポートされていません。代わりに、CloudFormation 組み込み関数の拡張形式を使用します。例えば、Guard ルールに照らして評価する場合は`Fn::Join`、YAML 形式の CloudFormation テンプレート`Fn::Sub`で を使用します。

組み込み関数の詳細については、 *AWS CloudFormation ユーザーガイド*の[組み込み関数リファレンス](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html)を参照してください。

## 一般的なトラブルシューティングのトピック
<a name="troubleshooting-general"></a>
+ `string` リテラルにエスケープされた文字列が埋め込まれていないことを確認します。Guard はリ`string`テラルの埋め込みエスケープ文字列をサポートしていません。インライン JSON 文字列を解析する場合は、Guard 3.0.0 以降で利用可能な `json_parse()`関数を使用します。詳細については、「[組み込み関数の使用](writing-rules.md#built-in-functions)」を参照してください。
+ `!=` 比較で互換性のあるデータ型が比較されていることを確認します。たとえば、 `string`と `int`は、比較用の互換性のないデータ型です。`!=` 比較を実行するときに、値が互換性がない場合、内部でエラーが発生します。現在、エラーは抑制され、Rust の [PartialEq](https://doc.rust-lang.org/std/cmp/trait.PartialEq.html) 特性を満たす`false`ために に変換されます。