まえがき
色々触っていると、 Azure Logic Apps から Graph API を扱いたくなる時があります。
やっていきましょう。
Graph API とは
Microsoft Cloud サービスリソースへのアクセスを可能にする RESTful な API です。
Graph API についての詳細は省略します。気になる人はこの辺のドキュメントを読みましょう。
Logic Apps とは
Azure Logic Apps は数百のコネクタを備えた、サーバレスでワークフロー的な統合ソリューションです。
具体的にはこういう感じで
一連のタスクを定義して実行する事が出来ます。
複雑なことをやり始めると大変ではありますが、簡単なタスクをシュッと実現するだけであればとても便利です。
Azure Logic Apps で Graph API を扱う
先述の通り Azure Logic Apps には数百のコネクタが存在しており、一見 Graph API コネクタも用意されているように錯覚しがちですが、 Graph API コネクタそのものは存在していません。
一応 Microsoft Graph Security
というコネクタは存在していますが、 Alert や Subscription を操作する事しか出来ず、Graph API 全体の機能を扱うことは出来ません。
しかし、Azure Logic Apps には HTTP コネクタが存在しています。何でもできそうですね。何でもやってしまいましょう。
具体的にはこういう感じです。
これでレスポンスを受け取ることが出来ますが、このままでは JSON 文字列が手元に残るだけで、扱いに困ります。
そのため、HTTP リクエストの直後に次のような JSON 解析
を挟みましょう。JSON の型定義を渡してあげることができます。
とはいえ上記の画像のような型定義を、API ごとに手で作るのは現実的ではありません。
そこで、 サンプルのペイロードを使用してスキーマを生成する
という機能を使えば、任意の JSON から型定義を自動で生成することが出来ます。便利ですね。
つまり、同じ API を Graph Explore で叩いてレスポンスの JSON を取得して、結果を サンプルのペイロードを使用してスキーマを生成する
に流し込めば HTTP リクエストの結果を Logic Apps のデザイナがよしなに解釈して用いる事が出来るようになります。
後はよしなに Slack 連携なんかを編集する時に
こんな感じで JSON の中身が良い感じに 動的なコンテンツ
として出てくるので、これを用いてメッセージなどを組み立てると良いでしょう。
かんたんですね!