koudenpaのブログ

趣味のブログです。職業柄IT関連の記事が多いと思います。

AWS CDKでMackerelのAmazon EventBridge通知チャンネルのイベントバスとルールを作る

最近に MackerelのEventBridge通知チャンネル がリリースされたことで以下の目論見が完遂した。

koudenpa.hatenablog.com

どうせなら近々に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つでは光量が足りていないので、もう少し工夫したいなぁ。と思っている。

github.com


追記:告知出ました。

mackerel.io