EventBridge ルールに関する問題をトラブルシューティングするにはどうすればよいですか?
最終更新日: 2022 年 4 月 15 日
Amazon EventBridge ルールに一致するイベントが発生しました。しかし、私のルールは正しく機能していません。これをトラブルシューティングするにはどうすればよいですか?
簡単な説明
ルールがトリガーされていないことが問題なのか、またはターゲットが呼び出されなかったことが問題なのかを特定します。問題の原因を特定したら、受信イベントを検証するか、またはターゲットを検証します。
解決方法
ルールがトリガーされていないのか、またはターゲットが呼び出されていないのかを確認する
そのためには、対応する EventBridge メトリクスを使用して、ルールのパフォーマンスを確認します。
TriggeredRules メトリクスは、ルールがイベントに一致した回数、または実行された回数を示します。このメトリクスは、スケジュールされたルールが実行されたかどうか、またはルールが特定のイベントに一致したかどうかを確認する場合に役立ちます。ルールが正常にトリガーされると、EventBridge はイベントをターゲットに転送します。
Invocations データポイントは、ルールがターゲットを呼び出すときに生成されます。EventBridge は、ターゲットに対するイベントの配信が困難になった場合、複数回試行します。FailedInvocations データポイントは、EventBridge がターゲットの呼び出しに永続的に失敗したときに発行されます。FailedInvocations は、ターゲット設定に問題があることを示します。
次の操作を実行して、EventBridge ルールの Amazon CloudWatch メトリクスを確認します。
- CloudWatch コンソールを開きます。
- [All Metrics] (すべてのメトリクス) を選択します。
- [AWS/Events] (AWS/イベント) 名前空間を選択します。
- 問題のルールの [TriggerRules]、[Invocations]、および [FailedInvocations] (使用可能な場合) メトリクスを選択します。これらのメトリクスは SUM 統計で表示できます。
受信イベントを検証する
- イベントベースのルールについては、目的のイベントに一致するようにイベントパターンを設定する必要があります。ルール作成時に EventBridge コンソールを使用してイベントパターンを検証できます。EventBridge は、イベントパターンの検証のための TestEventPattern API も提供します。
- 問題のイベントが AWS CloudTrail によってキャプチャされた場合、CloudTrail からイベントを取得できます。その後、指定されたイベントパターンが正しいことを確認します。
- 一部の AWS のサービスは、リージョン us-east-1 でのみ利用可能であることに注意してください。例えば、IAM API コールは us-east-1 でのみ発行されます。つまり、対応する EventBridge ルールを同じリージョンに作成する必要があります。
ターゲットを検証する
- EventBridge コンソールを使用してルールを作成すると、コンソールは必要な許可を次に自動的に追加します。
EventBridge ルールに関連付けられた IAM ロール。
ターゲットに関連付けられたリソースポリシー。
AWS SDK、AWS CLI、または AWS CloudFormation を使用してルールをデプロイする場合は、許可を明示的に設定する必要があります。 - EventBridge には、ターゲットを呼び出すための適切なアクセス権が付与されている必要があります。ターゲットに応じて、適切な IAM ロールまたはリソースポリシーに正しい許可があることを確認します。FailedInvocations データポイントは、ターゲットの許可が不十分であることを理由として生成されます。
- FailedInvocations データポイントがない場合、EventBridge はイベントをターゲットに正常に配信しました。ただし、ターゲットに独自の問題が発生している可能性があります。例えば、AWS Lambda ターゲットで EventBridge とは無関係にエラーやスロットリングが発生している可能性があります。EventBridge ルールによってターゲットが呼び出されたときのタイムスタンプについては、ターゲットの CloudWatch メトリクスと関連するログを確認します。
- Amazon Simple Queue Service (Amazon SQS) デッドレターキュー (DLQ) をターゲットに関連付けることができます。ターゲットへの配信に失敗したイベントは、デッドレターキューに送信されます。これは、失敗したイベントの詳細を確認する場合に便利です。例えば、Input Transformer でイベントを誤って構成すると、ターゲットで入力検証エラーが発生する可能性があります。