よしたく blog

ITエンジニアとして自分が知らなかったことをまとめています

Azure: Logic AppからTeamsへ通知を送る

Azure上の処理を結果をTeamsに送信したい要件がよくあり、すぐに案内ができるように手順をまとめておく。

Logic Appを作成する

AzureからLogic Appリソースを選択し、作成をおこなう。

f:id:yoshitaku_jp:20210328114141p:plain

リソース作成時のパラメータは特殊なものはないので、「サブスクリプション」「リソースグループ」「リージョン」が作成したい場所になっているか確認、またロジックアプリ名を記述し作成する。今回は「test-la」とした。

f:id:yoshitaku_jp:20210328114305p:plain

Logic App デザイナーで処理を作成する

次にLogic App デザイナーで処理を作成する。初回起動だとデザイナーがすぐに表示されることが可能性がある。下記の画像のようにリソースの詳細ページが開かれたときは、赤枠の場所をクリックすることでデザイナーの画面を表示する事ができる。

f:id:yoshitaku_jp:20210328115702p:plain

デザイナーは次のような画面となっている。

f:id:yoshitaku_jp:20210328115925p:plain

Logic Appには「トリガー」と「アクション」がある。この2つは何が起きたらの「トリガー」部分と、何をするの「アクション」部分で構成されている。

「トリガー」部分はよく使われる例にもあがっている通り、次のようなものがある。

  • メッセージがService Bus キューで受信されたとき
  • HTTP要求の受信時
  • 新しいツイータが投稿されたら
  • Event Gridのリソースイベントが発生するとき

今回の「アクション」部分は「Teamsへ通知を送る」となる。ブログ内では「トリガー」部分は「メッセージがService Bus キューで受信されたとき」で進めていく。

Service BusとLogic Appを接続する

Logic AppからどのService Busを確認するかや、接続設定したときの名前などを決定する。

「bus2teams」(Bus to Teams)などわかりやすい名前をつけて進めていく。

f:id:yoshitaku_jp:20210328131856p:plain

Teamsへ通知をする

Teamsへの通知はいくつか方法があるので紹介する。

Microsoft Teams

「アクション」の中にMicrosoft Teamsがあるので、こちらを選択するのが最も簡単にできる。

しかし、2019年からプレビューとついていて、2021年になっても外れていないので、そこだけ注意が必要となる。

f:id:yoshitaku_jp:20210328133728p:plain

実際に設定すると、個人のTeamsアカウントでログインし、GUIで設定していく。

メッセージもこの画面上から装飾し設定できるのですぐに実装することができる。

f:id:yoshitaku_jp:20210328134431p:plain

f:id:yoshitaku_jp:20210328134621p:plain

HTTP

次はHTTPで送信する方法になる。 こちらは送信先TeamsチャンネルのURLを取得し、そこに送信する方法になる。

Teamsで「コネクタ」を選択し、Incoming webhooksを選択する。作成が完了するとURLが発行されるのでメモしておく。

f:id:yoshitaku_jp:20210328135319p:plain

f:id:yoshitaku_jp:20210328135419p:plain

Logic Appでの作業に戻り、「アクション」でHTTPを選択する。

f:id:yoshitaku_jp:20210328140210p:plain

今回の設定値は次のようにする。

名称 値2
方法 POST
URI Teams Web Hookでメモした値
ヘッダー Content-type application/json
本文 {
"text": "Hello World"
}

Teams上では次のように表示される。

f:id:yoshitaku_jp:20210328142429p:plain

本文の設定がJson形式でおこなうため柔軟にできる反面、カスタマイズする部分が多くなればドキュメントを見なければならなくなりコストが増えることが懸念される。

docs.microsoft.com

Teamsのメールアドレスにメールを送信

メールを送信する形で通知をおこなうこともできる。まだ検証をしていないので詳しくは別の機会にするが、Logic AppでTeamsログインが出来ず、コネクタでIncoming webhooksが使えないときに使うことが想定される。

まとめ

Logic AppからTeamsへ通知を送る方法をまとめた。 Teamsへの送信部分は3種類あり、適切な場面で適切なものを選択できればいいと思う。