Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20181120 HowtoFlow

195 views

Published on

2018/11/20 Windows女子部にて利用した Flow 説明スライド

Published in: Technology
  • Be the first to comment

20181120 HowtoFlow

  1. 1. How to Flow 2018/11/20 LogicFlow-ja 小尾 智之
  2. 2. Self Introduction Attribute1: VB / LogicApps-Flow-PowerApps @twit_ahf Attribute2: 艦これ / 御城プロジェクトRe / EDF / メガネ / クマ / プロレス tomoyuki.obi http://el.jibun.atmarkit.co.jp/ahf Community: LogicFlow-ja / CLR/H Microsoft MVP for Microsoft Azure(2017.03 ~)
  3. 3. https://aka.ms/logicflowjp -fb Flow/Logic Apps コミュニティ
  4. 4. Overview / Cost
  5. 5. Microsoft Flow 概要 • 「イベントが発生した時(トリガ)」に 「処理を行う(アクション)」サービス • コネクタを利用して複数システムを連携(iPaas) – コネクタは自作も可能(Azure Web Apps/API Appsなど) – 既存サービスをカスタムコネクタとして登録可能 • デザイナー上での操作でほぼ完結する ローコード/コードレス開発(Low-Code / Codeless) • オンプレミス環境を交えても利用可能 – オンプレミス環境の API も利用可能
  6. 6. メールを受信したとき タスクの状態が変わったとき 日付が変わったとき Blog が更新されたとき OneDrive 上に Excel ファイルで記録する メールを転送する Azure SQL Database に更新する アラートを通知する 何かが起きた時 何かを実行する トリガ アクション
  7. 7. トリガ アクション LogicFlow (ワークフロー)
  8. 8. Microsoft Power Platform Dynamics 365 Office 365 Microsoft Azure
  9. 9. Dynamics365 Office365 Microsoft Azure Logic Apps Flow / PowerApps
  10. 10. Flow も PowerApps も どちらも LogicFlow を利用する
  11. 11. Flow/LogicApps アーキテクチャ Logic Apps RP Connection Manager Logic Apps Runtime Connector Runtime Logic Apps RP LogicFlow 構成を読み取り 依存性を加味してタスクを構成 Logic Apps Runtime 各タスクを実行できるよう調整 Connection Manager API 接続にまつわる部分の管理 Connector Runtime OpenAPI 仕様に基づく API の カプセル化
  12. 12. LogicFlow定義 (JSON) トリガ作成 実行開始 トリガ条件を満たした場合 処理のインスタンスを生成 アクションの 生成/開始 トリガごとに LogicFlow の インスタンスが生成され 関連データはインスタンス 単位で保持している
  13. 13. LogicFlowを作成 LogicFlowの構成を準備 トリガを作成、監視を開始 トリガ条件を満たす処理の開始を通達 LogicFlowの処理を開始 各処理を順次開始 LogicFlow 実行までのイメージ
  14. 14. トリガ・アクションの挙動 x LogicApps/Flow の タスクやアクションは 最低一度の実行を保証 何らかの理由で 応答なしな場合は 新しいトリガや アクションを生成する
  15. 15. Microsoft Flow 料金プラン https://flow.microsoft.com/ja-jp/pricing/
  16. 16. Flow プランでの機能制限 Premium 系コネクタは Plan1 / 2 でのみ利用可能
  17. 17. Office 365 Enterprise F1 だけは特殊で 個人無償アカウントに近い状況となる
  18. 18. https://powerapps.microsoft.com/ja-jp/communityplan/ PowerApps Community Plan
  19. 19. Flow/Logic Apps 仕様と制限 LogicApps Flow 最大実行継続時間 90 日 30 日 ストレージリテンション期間 90 日 30 日 最小繰り返し時間 1 秒 1分 最大繰り返し間隔 500 日 500 日 実行履歴保持期間 7~90 日 28 日 ForEach レコード数 100,000 5,000 Loop Until 回数 5,000 5,000 SplitOn 最大数 100,000 5,000 ForEach 並列処理数 初期値 20 最大 50 初期値 1 最大 50 アクション実行数(5分間) 100K / 300K 同時呼出し数 2,500 エンドポイント同時受信数 1,000 エンドポイント読み取り可能呼出し数 60,000 エンドポイント起動可能呼出し数 45,000 LogicApps Flow 1 フローでのアクション数 500 250 1 フローでのネスト数 8 5 1リージョンでのフロー数 1,000 (1,000?) 1 フローごとのトリガ数 10 - 一つの式での最大文字数 8,192 8,192 アクション/トリガの文字数 80 80 コメントの文字数 256 256 パラメーター数 50 - https://docs.microsoft.com/ja-jp/azure/logic- apps/logic-apps-limits-and-config https://docs.microsoft.com/ja-jp/flow/limits-and-config Flow:制限事項と構成 LogicApps:制限事項と構成
  20. 20. 1 Action (Trigger) 1 Action 1 Action 1 Flow Flow の課金単位 LogicApps の課金単位
  21. 21. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch Management
  22. 22. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch Management 251 Connectors
  23. 23. 毎日 Twitter 上でコネクタの 新規追加をチェック (Logic Apps/Flow 両方) コネクタの更新も同様に Twitter 上で告知開始 (Flow のみ)
  24. 24. Microsoft Flow Basics
  25. 25. 基本画面
  26. 26. 管理メニュー 管理メニュー (無償版)
  27. 27. 環境 アカウントごとに最大 5 つまで (無償版では作成できない) 環境ごとに作成する地域を選択 Azure のリージョンの「一部」が 該当している 本番/開発用/検証用などで分ける 形で使うのが多い
  28. 28. 自分に届いた承認依頼や、自分が申請した承認状況の確認 自分が作成した、組織で共有されたフローの確認・作成 LogicFlow のひな型 自分の環境で利用できるコネクタの一覧 Common Data Service 関係の設定 公式ドキュメントへのリンク
  29. 29. テンプレート
  30. 30. テンプレートの概要と 利用するために必要な接続情報が 表示される 初めて利用する接続の場合 この画面から接続情報を作成する
  31. 31. 承認など一部機能は無償版 では利用できない
  32. 32. Common Data Service(CDS) • Power Platform で共通に利用できる汎用データベース • Azure Logic Apps からも利用可能 • 定義を Common Data Model と呼び、実際のデータベースや テーブルを Common Data Service for Apps と呼ぶ • 主な提供目的は 「データを保存するために毎回構造を考えるのは勿体ない」 「あらかじめ決められたテーブル構造に投入することで 多くのサービスから同じように利用可能にする」 • Dynamics365 でも利用する業務プロセスフローは CDS に 対して設定し、投入したデータの内容によって後続プロセスを コントロールする(Flow とは異なるもの) 要 Plan2
  33. 33. 新しく環境を作成したり既存の環境を削除 組織でのコネクタ利用制限を設定 既存データを Common Data Service へ取り込む 各ユーザーへのライセンス割り当て状況の確認 Flow 実行回数の確認 Flow 管理センター
  34. 34. 環境の種類 作成したリージョン 環境
  35. 35. ユーザーは Azure Active Directory に 登録され全環境で共通 異なる環境間では HTTP 以外での アクセスはできない Flow 管理センターで 利用可能ユーザーの 追加やロールの割当 x x
  36. 36. https://powerapps.microsoft.com/ja-jp/blog/retain-your-resources-and-data-in-trial-environments/ これまでは試用と設定した環境 でも特に問題なかったが 最近になり 「30日操作しなかった試用環境 は削除される」 という制約が追加された
  37. 37. データポリシー コネクタを2つのグルー プにわけ、グループ間で のデータ連携を禁止する SNS系コネクタと 別グループにすることで 流出防止したい場合など
  38. 38. データ統合プロジェクト Common Data Service へとデータを適宜移行す るための機能 外部サービスやオンプレ ミスのデータを一気に移 行する LogicFlow とは別の仕組 みを利用しており高速 反面一部データの移行な どは不向き
  39. 39. マイフロー: 自分が作成した LogicFlow チームフロー: 組織で共有された LogicFlow 業務プロセスフロー: Common Data Service と Dynamics365 で利用する データベース拡張機能 (Flow とは別種)
  40. 40. デザイナーの表示 LogicFlow ごとの管理メニュー 同一テナントの別ユーザーと共有 LogicFlow の別名保存 Zip形式/Logic Apps用のJSONファイル出力 実行状況やエラー状況の確認 LogicFlow の無効化 LogicFlow の削除
  41. 41. LogicFlow の管理メニューに 「今すぐ実行」が追加される 特定のトリガを利用している場合 スケジュールトリガ ボタントリガ を利用している場合に限り 手動での実行指示が行える
  42. 42. エクスポート
  43. 43. 作成した LogicFlow 毎に 実行状況やエラー発生状況は 記録されている 外部サービスとの連携では 思っている以上にエラーが発生するので 何かおかしいとおもったらまずここで 状況を確認する 分析の参照
  44. 44. すべて 組み込み 標準 Premium カスタム Flow で扱える全てのコネクタを表示 外部サービスではなく Flow に 組み込まれた基本機能を表示 外部サービスと接続するコネクタを表示 有償プラン利用で扱えるコネクタを表示 カスタムコネクタで設定したコネクタを表示
  45. 45. 最初は必ずトリガを指定する 後で別のトリガに 置き換えることも可能 右上の「・・・」から削除を行える
  46. 46. コネクタの設定から細かい動作の指定が行る (トリガ・アクション問わずに可能) コネクタにより設定できる項目は変化する 共通項目は「カスタムの追跡ID」だが Flow ではあまり利用するシーンがない (Azure Logic Apps 用)
  47. 47. トリガを設置した後で 後続のアクションを追加していく 設置したアクションの順序は マウスによるドラッグドロップで 入れ替えがいつでも可能 ただし後続アクションで 処理結果を利用している場合は 移動が行えない
  48. 48. 制御コネクタ LogicFlow で利用する制御用コネクタ 条件判断や繰り返し 処理をまとめるスコープや終了がある
  49. 49. 条件判断 / Condition IF ~ THEN ~ ELSE(条件分岐) Switch Case(条件多分岐)
  50. 50. Logic Apps では もう少し構造的に 条件を設定可能
  51. 51. Do Until ループ ループが一定時間内に終了しない場合に タイムアウトとする場合は ISO 8601 形式でタイムアウト条件を設定 必ずシーケンシャルに動作する 繰り返し/Loop
  52. 52. ForEach ループ 規定では並列動作しない 設定から変更可能(最高で50まで) 値の数だけ繰り返し/ ForEach
  53. 53. スコープ/Scope スコープで処理をまとめることで 途中でエラーが発生しても対応できる 処理を組み立てられる https://blogahf.blogspot.com/2018/07/logicflow-try-catch-finally.html
  54. 54. LogicFlow の特性として アクションでエラーが発生しても 次のアクションへ制御は必ず移る トリガのエラーは LogicFlow が 実行されないことがある (リトライで回復した場合などは実行される) 各アクションの初期値が 「前のアクションが成功した時に処理をする」 となっているので制御が移っても 処理が行われない
  55. 55. 変数 / Variables プログラム的に利用する 値を格納するためのもの 初期化を最初に行う必要がある 変数の値に数値を足しこんだり 文字列を結合したりといった プログラム的処理に利用する
  56. 56. データ操作/ Data Operations 何かしらのデータに対して 特定の処理を行うもの たくさんのデータから 必要なものだけに絞り込みをする 「選択」「フィルター処理」 計算結果を格納する「作成」 などが利用する場面が多い (「作成」した値は書換えられない のが変数との違い)
  57. 57. 関数 / Workflow Function より詳細な処理を行う場合 ワークフロー関数を利用 基本はダイアログから選択 慣れたら直接記載も可能 https://docs.microsoft.com/ja-jp/azure/logic-apps/workflow-definition-language-functions-reference プログラミング的な知識が 必要なためハードルはある
  58. 58. Case 1:Notify from Mail
  59. 59. システムアラートが メール通知された時に モバイル端末へ プッシュ通知を行う GMail ↓ 条件判断 ↓ モバイル通知
  60. 60. Gmail トリガによるメール受信 デザイナー上で条件を設定し処理対象を絞る 後続の LogicFlow 部でさらに条件を絞る →JSON 直接編集により絞り込む方法もある トリガで条件を満たしたときに、初めて LogicFlow が起動する →この時に 1 実行とカウントされる →そのためトリガでできるだけ実行条件を 絞り込むことが重要 Flow の通知は1ユーザーに限った通知 →社内で展開する場合は PowerApps の通知 を利用すると他人や複数人への通知が行える
  61. 61. Various triggers
  62. 62. 定期的に処理を実行する際に利用 「毎週〇曜日の□時」 「毎月〇日、□日の△時」 といった指定が可能 プランによって指定できる 最小頻度に制限がある スケジュールトリガー
  63. 63. スケジュールコネクタでは 「いつまで待機:延長期限」と 「どれだけ待機:待ち時間」 のアクションもある
  64. 64. モバイルまたはWebサイト上から実行を指示できる その際に何かしらの入力を行うことができ 選択肢からの選択やファイルのアップロードが可能 Android や iPhoneの メニュー画面に 直接配置可能 ボタントリガー
  65. 65. 外部からのHTTP呼出に対応 スキーマを定義すると 後続のアクションでダイアログから選択も 可能になる またスキーマに合致しない値に対して HTTP エラーを返却可能 要求トリガー
  66. 66. PowerAppsトリガー PowerApps から呼び出さ れる処理の場合に利用 PowerApps 側から呼び出 す際に、好きな値を指定で きる(複数指定も可能)
  67. 67. https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-workflow-actions-triggers エクスポートして defitination.json ファイルを直接書き換える ことで可能 "triggers": { "manual": { "type": "Request", "kind": "Http", "inputs": { "schema": { }, "method": "POST" }, "conditions": [ { "expression": "@equals(empty(triggerBody()), false)" } ] } }, ただしデザイナー側で対応 していないため、その後の 動作は保証されない (デザイナーから保存する と消える) トリガー起動条件の直接修正
  68. 68. Case2:Send Mail using Button
  69. 69. ボタントリガを実行すると 自動で本日休むメールを 送信する
  70. 70. グローバルなサービスなので 内部では UTC(世界標準時) にて動作している Flow 内部の時計 日本時間を利用する際は 「タイムゾーンの変換」 アクションを利用するか 関数を利用する https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/custom-date-and-time-format-strings カスタムで書式を指定できる (.NET などと同様の指定)
  71. 71. Case3:Request from Other System
  72. 72. IFTTT からの Flow 呼び出し 呼び出し先の URL を 指定できるサービス ならば連携が可能
  73. 73. IFTTTでGPSをトリガに起動 ↓ Flowを呼び出し ↓ Twitterへ投稿 Flow だけで処理を完結させる 必要はない
  74. 74. 要求コネクタで外部からの呼び出しを可能にする トリガ設置後に LogicFlow を保存することで URL が生 成される 呼び出しメソッドを GET にすれば ブラウザから利用するのも可能
  75. 75. 要求で呼び出された場合は 応答で何らかの返事を返す のが必要な場合がある 利用するサービスによって異なるが 状態 200(HTTP OK)を戻すのが安定
  76. 76. 将来的には Flow で GPS コネクタが提供される(かも)
  77. 77. Case4:Bot for Microsoft Teams
  78. 78. Teams に投稿されたら 反応を行う Bot
  79. 79. Teams コネクタでは LogicFlow 実行ユーザーからの投稿となる Bot 専用アカウントをテナントに用意するのがスマート もしくはアイコンを独自に設定できる Teams の Webhook 機能を利用して Flow から返答メッセージを Webhook 呼び出しにて対応
  80. 80. Case5:Excel Trigger
  81. 81. Excel で選択したデータを もとに Flow を実行
  82. 82. Case6:Approval
  83. 83. • すべてのユーザー: 指定した宛先のユーザー全員の承認が必要 • 任意のユーザー: 指定した宛先のユーザー誰かの承認が必要 • 担当者ではメールアドレスを指定する • 組織外のメールアドレスも指定可能だが 承認機能が動作しない
  84. 84. Flow ポータルサイト上で、承認状況の確認が行える この間、対象の LogicFlow は「実行中」状態となり30日間で確定しなければ途中キャンセルされる
  85. 85. 送信されたメール上からでも、承認や拒否(否決)を行える
  86. 86. Case7:OnPremiss DataGateway
  87. 87. OnPremiss Data Gateway 要 Office365 Flow Premium ライセンス ゲートウェイをインストールした 端末から別PCへアクセスは可能 ゲートウェイを通じて同一LANの サービスにアクセスができる • Azure ServiceBus(Queue)を介した オンプレミス環境との接続 • Flow/オンプレミスそれぞれからServiceBusに 定期的に問合せを行う (ポーリングしている) • ファイアウォールは送信のみ設定が必要 (受信は行わない)
  88. 88. スマートフォンから PCへファイルを転送
  89. 89. PC上のファイルを操作したこと をトリガに利用できる 別のシステムでのファイル出力を Flow 呼び出しのトリガと することができる ゲートウェイを利用する ことで自分のPC以外にも 自社のサーバーも処理に 含めることができる
  90. 90. まとめ • 「こういう時」に「こうしたい」と思った時に Flow を利用してみよう • 「こういう時」がトリガ 「こうしたい」が後続のアクション • HTTP 呼び出しができるものは Flow で接続可能 • 最初は個人利用、そのノウハウをもって社内展開 • 実行回数には要注意 • Flow だけでどうにかしようと固執しない • やればできるかもしれないが、面倒くささなどで割高に なることもある
  91. 91. Appendix • LogicFlow-ja ( https://aka.ms/logicflowjp-fb/ ) • LogicFlow を扱っている Blog • nrjlog ( http://zuvuyalink.net/nrjlog/ ) • てすとぶろぐ ( http://blogahf.blogspot.jp/ ) • Azure LogicApps ( https://blogs.msdn.microsoft.com/logicapps/ ) • Flow – Blog (https://flow.microsoft.com/en-us/blog/) • PowerApps – Blog (https://powerapps.microsoft.com/en-us/blog/) • Twitter Hashtag • LogicApps → #LogicApps • Flow → #MicrosoftFlow

×