この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、CX事業本部 IoT事業部の若槻です。
Amazon EventBridgeでは、AWSサービスが発行したイベントはデフォルトのイベントバスで受信されます。
AWS アカウントの AWS サービスがイベントを発行すると、常にアカウントのデフォルトのイベントバスに移動します。現在のアカウントの AWS サービスのイベントに一致するルールを作成するには、デフォルトのイベントバスに関連付ける必要があります。
今回は、Amazon EventBridgeのデフォルトバスを使用したルールをイベントパターンで作成してみました。
やってみた
下記の構成のうちEventBridgeルールの部分を作成します。
EventBridgeルールの作成
Amazon EventBridgeのコンソールで[Create rule]をクリックします。
[Define pattern]でEvent pattern
を選択します。
[Event matching pattern]でPre-defined pattern by service
を選択します。
[Service provider]でAWS
を選択します。
[Service name]でCloudWatch
を選択します。
[Event type]でCloudWatch Alarm State Change
を選択します。
するとエディターに既定のイベントパターンがJSON形式でセットされました。
{
"source": ["aws.cloudwatch"],
"detail-type": ["CloudWatch Alarm State Change"]
}
ちなみにこのイベントパターンのJSONは、AWSの各種リソースのページから確認できます。CloudWatch Alarmの場合は[View EventBridge rule]で表示できます。
ターゲットにSNSトピックを指定して、ルールを作成します。
作成できました。
動作
CloudWatch AlarmtestAlarm
でアラームを手動発生させます。
$ aws cloudwatch set-alarm-state \
--alarm-name testAlarm \
--state-value ALARM \
--state-reason "test"
するとEventBridgeルール経由でSNSトピックからのメール通知が届きました。
参考
以上