Azure上の処理を結果をTeamsに送信したい要件がよくあり、すぐに案内ができるように手順をまとめておく。
Logic Appを作成する
AzureからLogic Appリソースを選択し、作成をおこなう。
リソース作成時のパラメータは特殊なものはないので、「サブスクリプション」「リソースグループ」「リージョン」が作成したい場所になっているか確認、またロジックアプリ名を記述し作成する。今回は「test-la」とした。
Logic App デザイナーで処理を作成する
次にLogic App デザイナーで処理を作成する。初回起動だとデザイナーがすぐに表示されることが可能性がある。下記の画像のようにリソースの詳細ページが開かれたときは、赤枠の場所をクリックすることでデザイナーの画面を表示する事ができる。
デザイナーは次のような画面となっている。
Logic Appには「トリガー」と「アクション」がある。この2つは何が起きたらの「トリガー」部分と、何をするの「アクション」部分で構成されている。
「トリガー」部分はよく使われる例にもあがっている通り、次のようなものがある。
- メッセージがService Bus キューで受信されたとき
- HTTP要求の受信時
- 新しいツイータが投稿されたら
- Event Gridのリソースイベントが発生するとき
今回の「アクション」部分は「Teamsへ通知を送る」となる。ブログ内では「トリガー」部分は「メッセージがService Bus キューで受信されたとき」で進めていく。
Service BusとLogic Appを接続する
Logic AppからどのService Busを確認するかや、接続設定したときの名前などを決定する。
「bus2teams」(Bus to Teams)などわかりやすい名前をつけて進めていく。
Teamsへ通知をする
Teamsへの通知はいくつか方法があるので紹介する。
Microsoft Teams
「アクション」の中にMicrosoft Teamsがあるので、こちらを選択するのが最も簡単にできる。
しかし、2019年からプレビューとついていて、2021年になっても外れていないので、そこだけ注意が必要となる。
実際に設定すると、個人のTeamsアカウントでログインし、GUIで設定していく。
メッセージもこの画面上から装飾し設定できるのですぐに実装することができる。
HTTP
次はHTTPで送信する方法になる。 こちらは送信先TeamsチャンネルのURLを取得し、そこに送信する方法になる。
Teamsで「コネクタ」を選択し、Incoming webhooksを選択する。作成が完了するとURLが発行されるのでメモしておく。
Logic Appでの作業に戻り、「アクション」でHTTPを選択する。
今回の設定値は次のようにする。
名称 | 値 | 値2 |
---|---|---|
方法 | POST | |
URI | Teams Web Hookでメモした値 | |
ヘッダー | Content-type | application/json |
本文 | { "text": "Hello World" } |
Teams上では次のように表示される。
本文の設定がJson形式でおこなうため柔軟にできる反面、カスタマイズする部分が多くなればドキュメントを見なければならなくなりコストが増えることが懸念される。
Teamsのメールアドレスにメールを送信
メールを送信する形で通知をおこなうこともできる。まだ検証をしていないので詳しくは別の機会にするが、Logic AppでTeamsログインが出来ず、コネクタでIncoming webhooksが使えないときに使うことが想定される。
まとめ
Logic AppからTeamsへ通知を送る方法をまとめた。 Teamsへの送信部分は3種類あり、適切な場面で適切なものを選択できればいいと思う。