Amazon EventBridge イベントパターンでの Null 値や空の文字列とのマッチング - Amazon EventBridge

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

Amazon EventBridge イベントパターンでの Null 値や空の文字列とのマッチング

重要

EventBridge では、予想よりも高い料金やスロットリングにつながる可能性のあるルールを作成できます。例えば、ルールが無限に再帰的に実行される無限ループに陥るようなルールを誤って作成してしまうことがあります。Amazon S3 バケットで ACL が変更されたことを検出し、ソフトウェアをトリガーして目的の状態に変更するルールを作成したとします。このルールが慎重に記述されていない場合は、その後 ACL を変更するとルールが再び開始され、無限ループが作成されます。

このような予期しない結果を最小限に抑えるための正確なルールやイベントパターンを記述する方法に関するガイダンスについては、「ルールのベストプラクティス」および「ベストプラクティス」を参照してください。

イベントのうち、Null 値や空の文字列を持つイベントフィールドと一致するイベントパターンを作成できます。次のイベントの例を考えます。

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

{ "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 値の使用

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