6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SpeeeAdvent Calendar 2019

Day 12

Azure Logic Apps で Graph API を扱う

Last updated at Posted at 2019-12-12

まえがき

色々触っていると、 Azure Logic Apps から Graph API を扱いたくなる時があります。
やっていきましょう。

Graph API とは

Microsoft Cloud サービスリソースへのアクセスを可能にする RESTful な API です。
Graph API についての詳細は省略します。気になる人はこの辺のドキュメントを読みましょう。

Logic Apps とは

Azure Logic Apps は数百のコネクタを備えた、サーバレスでワークフロー的な統合ソリューションです。
具体的にはこういう感じで

logicapps.png

一連のタスクを定義して実行する事が出来ます。
複雑なことをやり始めると大変ではありますが、簡単なタスクをシュッと実現するだけであればとても便利です。

Azure Logic Apps で Graph API を扱う

先述の通り Azure Logic Apps には数百のコネクタが存在しており、一見 Graph API コネクタも用意されているように錯覚しがちですが、 Graph API コネクタそのものは存在していません。
一応 Microsoft Graph Security というコネクタは存在していますが、 Alert や Subscription を操作する事しか出来ず、Graph API 全体の機能を扱うことは出来ません。

しかし、Azure Logic Apps には HTTP コネクタが存在しています。何でもできそうですね。何でもやってしまいましょう。

具体的にはこういう感じです。

http.png

これでレスポンスを受け取ることが出来ますが、このままでは JSON 文字列が手元に残るだけで、扱いに困ります。
そのため、HTTP リクエストの直後に次のような JSON 解析 を挟みましょう。JSON の型定義を渡してあげることができます。

http2.png

とはいえ上記の画像のような型定義を、API ごとに手で作るのは現実的ではありません。
そこで、 サンプルのペイロードを使用してスキーマを生成する という機能を使えば、任意の JSON から型定義を自動で生成することが出来ます。便利ですね。
つまり、同じ API を Graph Explore で叩いてレスポンスの JSON を取得して、結果を サンプルのペイロードを使用してスキーマを生成する に流し込めば HTTP リクエストの結果を Logic Apps のデザイナがよしなに解釈して用いる事が出来るようになります。

後はよしなに Slack 連携なんかを編集する時に

slack.png

こんな感じで JSON の中身が良い感じに 動的なコンテンツ として出てくるので、これを用いてメッセージなどを組み立てると良いでしょう。
かんたんですね!

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?