TeamsのIncoming Webhookが使えなくなるらしいのでMackerelの通知受信をWorkflowに乗り換えた

# 前提
運用しているサーバーの監視をMackerelで行っています。
そしてMackerelから発報された通知はTeamsのIncoming Webhookを使って受信しています。
チャネル追加の際に「Microsoft Teams」を選択しています。
![Mackerel_チャネル追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/6cab844f-d61a-d717-256a-5c37dfd2049f.png)


# 突然やってきた、「なくなるよ」通知
2024/7/9の深夜に通知された内容の末尾に何やら見慣れない英語が・・・
![通知.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/268cdf49-ec9d-bc25-0305-0ee5aa719b01.png)
文中のリンク先は下記のとおりです。
[Learn more](https://teams.microsoft.com/l/message/19:de13f90cfce74affb9074ff768502ad2@thread.tacv2/1720472616324?tenantId=7ef35a08-ef26-40c2-9fea-a26085c65812&groupId=8b91c206-9bce-41c0-ba79-00b71ca7bdbf&parentMessageId=1720472616324&teamName=JSB&channelName=Mackerel%E9%80%9A%E7%9F%A5%5BProd%5D&createdTime=1720472616324&ngc=true)
[Set up workflow](https://teams.microsoft.com/l/message/19:de13f90cfce74affb9074ff768502ad2@thread.tacv2/1720472616324?tenantId=7ef35a08-ef26-40c2-9fea-a26085c65812&groupId=8b91c206-9bce-41c0-ba79-00b71ca7bdbf&parentMessageId=1720472616324&teamName=JSB&channelName=Mackerel%E9%80%9A%E7%9F%A5%5BProd%5D&createdTime=1720472616324&ngc=true)

Learn moreの方を確認すると、Office 365系コネクタを段階的に廃止するぜ！猶予期間は2024/9末までな！だそう。
いきなりすぎるやないか！！！
> Wave 1 – effective August 15th, 2024: All new Connector creation will be blocked within all clouds
> Wave 2 – effective October 1st, 2024: All connectors within all clouds will stop working

と言っていても、Microsoftさんですし仕方ないですね。

# 仕方ないので対応する
webhookをworkflowに置き換えなさいってあるので、Set up workflowリンクを踏んでWorkflowを作ってみます。

![add workflow_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/55dca17c-1f58-1563-b13e-b83f29fcb9e0.png)
![add workflow_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/b9a1fcee-42a5-987c-0461-a0b82ec0d3b9.png)
![add workflow_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/ca89d381-0eef-b36d-deee-4fa263844c69.png)

指示通りにポチポチ。
最後に表示されたURLをコピーして、Mackerel通知チャネルの「URL」欄に貼り付けます。
これでMackerel通知チャネルのテスト送信をしてみます。
・
・
・
Teamsに通知が来ない。

WorkflowはPower Automateで実現されているので、Power Automateのクラウドフローから、先ほど作成したWorkflowの実行履歴を開いてみます。

![失敗.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/06b5b796-8a8e-6b9c-d932-c5c76f797fd3.png)

「失敗」してますね。
Workflowの内容確認と、何が起きているのかを確認してみます。

![workflow全体.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/8e90e1ab-3435-9974-07c4-25eb120a7393.png)

入力の受付は成功して、その後ループ？なんでなんでしょうね。とりあえずそこでエラーが起きているみたい。

![入力_成功.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/e1cc8349-9705-d1ea-f056-aed325026cb3.png)
![出力_失敗.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/63cc9f60-0552-1736-addb-ab4acffbed8a.png)

入力アクション部分を見ると、「成功」してますが、schemaと実際の入力が全然違います。
エラーの起きているループアクションを確認すると「bodyのattachmentsがNULL」と。。。
そりゃそうです。入力アクション部分で受けている内容はどうみても「attachements」なんてありません。
schema違いますやん！
なんですが、このschemaは変更できないので、ガン無視します！！

そもそもAdaptiveカードである必要もないというか、Mackerelから送られてくる内容（入力アクションの出力セクション「body」参照）的にそうであっては困るので、単にメッセージを投稿するアクションに変更します。
そして、schemaはガン無視なので、入力が格納されている変数を直接使って組み立てます。

![修正後workflow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/b2ea9a43-50e3-77b4-8624-d4de29dd384b.png)

こうなりました。

| 表示 | 値 |
| --- | --- |
| themeColor | triggerBody()?['themeColor'] |
| title | triggerBody()?['title'] |
| text | triggerBody()?['text'] |

再びMackerel通知チャネルのテスト送信をしてみます。

![テスト通知.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/e8af4f31-91bc-d320-730c-d74fe8b5f6bc.png)

成功！！！
リソースアラートはこんな感じに表示されるようになりました。
![本番通知.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72763/23fd80e7-1363-f658-abdb-b50bcf1c7631.png)

グラフ画像がちょっと小さくはなりましたが、まぁ十分雰囲気はわかるしこれでよし。