

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

# Amazon EventBridge イベントパターンでの Null 値や空の文字列とのマッチング
<a name="eb-event-patterns-null-values"></a>

**重要**  
EventBridge では、予想よりも高い料金やスロットリングにつながる可能性のあるルールを作成できます。例えば、ルールが無限に再帰的に実行される無限ループに陥るようなルールを誤って作成してしまうことがあります。Amazon S3 バケットで ACL が変更されたことを検出し、ソフトウェアをトリガーして目的の状態に変更するルールを作成したとします。このルールが慎重に記述されていない場合は、その後 ACL を変更するとルールが再び開始され、無限ループが作成されます。  
このような予期しない結果を最小限に抑えるための正確なルールやイベントパターンを記述する方法に関するガイダンスについては、「[ルールのベストプラクティス](eb-rules-best-practices.md)」および「[ベストプラクティス](eb-patterns-best-practices.md)」を参照してください。

[イベント](eb-events.md)のうち、Null 値や空の文字列を持つイベントフィールドと一致する[イベントパターン](eb-event-patterns.md)を作成できます。次のイベントの例を考えます。

予想よりも高い料金やスロットリングを避けるためのベストプラクティスをご覧ください

```
{
  "version": "0",
  "id": "3e3c153a-8339-4e30-8c35-687ebef853fe",
  "detail-type": "EC2 Instance Launch Successful",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2015-11-11T21:31:47Z",
  "region": "us-east-1",
  "resources": [
   ],
  "detail": {
    "eventVersion": "",
    "responseElements": null
   }
}
```

`eventVersion` の値が空の文字列であるイベントとマッチングするには、上のイベント例と一致する次のイベントパターンを使用します。

```
{
  "detail": {
     "eventVersion": [""]
  }
}
```

`responseElements` の値が Null であるイベントとマッチングするには、上のイベント例と一致する次のイベントパターンを使用します。

```
{
  "detail": {
     "responseElements": [null]
  }
}
```

**注記**  
Null 値と空の文字列は、パターンマッチングで交換可能ではありません。空の文字列に一致するイベントパターンは、`null` の値に一致しません。

## AWS CloudFormation テンプレートでの null 値の使用
<a name="eb-event-patterns-null-values-cfn"></a>

AWS CloudFormation はテンプレート`null`の値を許可しません。YAML または JSON オブジェクト構文を使用して null 値を持つイベントパターンを定義すると、テンプレートの検証は失敗し、エラー が発生します`'null' values are not allowed in templates`。

この制限を回避するには、YAML または JSON オブジェクトの代わりに `EventPattern`プロパティを JSON 文字列として指定します。次の例は、 AWS CloudFormation テンプレートの null 値で を照合する方法を示しています。

```
MyRule:
  Type: AWS::Events::Rule
  Properties:
    EventPattern: '{"detail":{"responseElements":[null]}}'
```