Logic Appsとは
Azure Logic Appsは、様々なサービスやデータを連係させるアプリケーションを簡単に作成可能なPaaSサービスです。
提供済みのコネクタを組み合わせて、GUIでワークフローを実装することができます。
最新のコネクタ一覧は こちら で確認できます。
https://docs.microsoft.com/ja-jp/azure/connectors/apis-list
今回は一例として、httpリクエストを受けて、メッセージをslack/chatter/yammerにPostするアプリを作成してみます。
分岐処理を試すため、ツール名を指定して投げ先を変えてみます。処理の流れを図にするとこんな感じです。
Logic App作成
Logic Appの新規作成
Azure Portalで、Logic Appを作成します。作成時に指定するのは名前とリソースグループ程度です。
作成されるとすぐにウィザードが起動します。テンプレートも色々用意されていますが、今回は「空のロジックアプリ」を選択します。
最初のステップとして、「要求と応答」を選択し、httpリクエスト(の受信)を設定します。
リクエストに、用意しておいたJSONスキーマを設定します。URLは保存後に発行されます。
JSONパースを追加
以降の処理でリクエスト中の値を使用するため、JSONパースを追加します。「+ステップの追加」で、「データ操作 - JSONの解析」を追加します。
追加されたダイアログで
- ステップ名を"JsonParse"に変更(デフォルトは"JSONの解析"ですが、全角文字は保存時にエラーが出てしまうので半角文字に変更しておきます)
- コンテンツに「本文」を設定
- スキーマに、リクエストに設定したものと同じJSONスキーマ
を設定します
分岐と投稿処理を作成
"tool_name"によって、各ツールに投稿する処理を作成します。「+ステップの追加」で、「Switch Caseの追加」を選択します。
変数に @body('JsonParse')['tool_name']
を入力します。
最初のケースで、メッセージの投稿先にSlackを設定します。アクションから「Slack - 投稿メッセージ」を選択し、
Slackにログイン後、チャンネル名とメッセージ ( @body('JsonParse')['message']
) を入力します。
2つ目のケースで、メッセージの投稿先にChatterを設定します。同様にアクションから「Chatter - Post to a group」を選択し、メッセージに @body('JsonParse')['message']
を入力します。
以上でLogic Appが作成できました。
動作確認
保存後、最初の「要求」ステップを開くと投稿用のURLが発行されています。
Slackに投稿してみます。
$ curl -H "Content-type: application/json" -X POST -d '{"tool_name":"slack","message":"logic app test to slack"}' '<ポータルで確認したURL>'
Chatterに投稿してみます。
$ curl -H "Content-type: application/json" -X POST -d '{"tool_name":"chatter","message":"logic app test to chatter"}' '<ポータルで確認したURL>'
それ以外でyammerに投稿できるか確認してみます。
$ curl -H "Content-type: application/json" -X POST -d '{"tool_name":"other","message":"logic app test to yammer"}' '<ポータルで確認したURL>'
以上で設計通り動作することが確認できました。
このようにGUIだけで簡単にアプリケーションが作成できるので、コネクタが提供されているものはLogic Appsの利用をまず検討してみるとよいと思います。