Microsoft Flowをコードに組み込む
TL;DR
Microsoft FlowのトリガをHTTPリクエストに設定すると、AWS LambdaみたいなFaaSっぽい使い方ができる。(戻り値を使うとかはできないけど・・・) 2019/3/30追記: 戻り値を使うパターンは[応答]アクションを使えば実現できるそうです。r-wakatsukiさん、ありがとうございます!
また、デフォルトで登録されていない、任意のサービスに対応することができる。
Microsoft Flowって?
ノードベースプログラミングで簡単に操作のフローを自動化できる。
Slackやメール、Twitter等のアプリと連携が可能。
フリープランが存在し、月ごと750回まで実行可能 (2019/3/21現在)
https://japan.flow.microsoft.com/ja-jp/pricing
簡単な例 ( Hello World )
- トリガに
[HTTP要求の受信時]
を設定します。
- トリガに好きなフローを繋げる。ここではSlackにHello Worldを投稿させます。
- 生成されたURLにHTTPリクエストします。メソッドはデフォルトでPOSTです。powershellだと以下のようなコードで発火できます。
helloworld.ps1
Invoke-RestMethod -Uri "https://prod-27.japaneast.logic.azure.com:443/XXXXXXXXXXXXXXXXXXXXXX" -Method POST
引数を渡す例 ( Slackに任意の内容を投稿 )
[HTTP要求の受信時]
を設定します。Invoke-RestMethod -Uri "https://prod-27.japaneast.logic.azure.com:443/XXXXXXXXXXXXXXXXXXXXXX" -Method POST
トリガに[HTTP要求の受信時]
を設定する際、JSONスキーマを指定すると、受け取ったJSONのデータをフロー内で扱うことができます。(ペイロードをアップロードすると、自動でスキーマ生成してくれます。)
- 以下の
sample_payload.json
から[HTTP要求の受信時]
にスキーマを生成します。 Slackのチャネル名で
[カスタム値の入力]
を選択し、channel
を選択します。メッセージテキストも同様にし、message
を選択します。
生成されたURLにHTTPリクエストします。powershellだと
helloworld2.ps1
のようなコードで発火できます。今度はrandomにhello worldを投稿します。
{
"channel":"general",
"message":"hello world"
}
Invoke-RestMethod -Uri "https://prod-27.japaneast.logic.azure.com:443/XXXXXXXXXX" -Method POST -Body ( @{"channel"="random";"message"="hello world"} | ConvertTo-Json) -ContentType 'application/json'
サービス連携 ( GitHub : forced push通知 )
Microsoft Flowはアプリケーション連携が豊富で便利だけど、GitHubにforced pushされたとき用のトリガは存在しないので、自分で作っていくしかありません。
- github webhookのサンプルペイロード( https://gist.github.com/gjtorikian/5171861 )から
[HTTP要求の受信時]
にスキーマを生成します - 条件フローを作成し、
[forced]
がtrue
に等しいとき、という設定にします。 -
[はいの場合]
にSlackを繋げてメッセージの投稿を設定します。 - 最後に、GitHubのWebhookに
[HTTP要求の受信時]
から生成されたURLを設定します。
これでforced pushされたときに、Slackに通知が飛びます。
Author And Source
この問題について(Microsoft Flowをコードに組み込む), 我々は、より多くの情報をここで見つけました https://qiita.com/Y0KUDA/items/18cbc53feea8215b3e92著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .