Amazon EventBridgeのデフォルトバスを使用したルールをイベントパターンで作成してみた

2021.12.13

この記事は公開されてから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トピックからのメール通知が届きました。

参考

以上