最近に MackerelのEventBridge通知チャンネル がリリースされたことで以下の目論見が完遂した。
どうせなら近々にMackerelの通知チャンネルに追加される予定のAmazon EventBridgeを起点にしようと考えた。すると、必然的にクラウドはAWSになる。そう言えば「Greengrassまともに使ったとこないな」とGreengrassにすることにした。リソースの管理をしたい。そう言えばCDKがC#対応していたのでC#にした。
そのAWS CDKでのEventBridgeのパートナーイベントソースからのメッセージを処理するリソース構築スニペット が以下。
ヘルプページ に案内がある AWSコンソールで連携設定をする
の部分をCDKで構築する形だ。
var eventSourceName = $"aws.partner/mackerel.io/{props.OrganizationName}/{props.EventName}"; var mackerelAlertBus = new EventBus(this, "mackerel-alert-bus", new EventBusProps() { EventSourceName = eventSourceName, }); var mackerelAlertRule = new Rule(this, "mackerel-alert-rule", new RuleProps() { EventBus = mackerelAlertBus, EventPattern = new EventPattern() { Account = new string[]{ this.Account, }, }, Targets = new IRuleTarget[] { new LambdaFunction(cloudReceiveAlertFunction), }, });
全コードはGitHubリポジトリに放ってある。正直アラートを知らせるのにLED1つでは光量が足りていないので、もう少し工夫したいなぁ。と思っている。
追記:告知出ました。