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.

20180721 First Challenge Logicflow

486 views

Published on

2018/07/21 Citizen Application Platform Fest で利用した Flow のスライド

Published in: Technology
  • Be the first to comment

20180721 First Challenge Logicflow

  1. 1. First Challenge LogicFlow 2018/07/21 LogicFlow-ja 小尾 智之 #capjp #MicrosoftFlow
  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
  4. 4. Overview / Cost
  5. 5. Dynamics365 Office365 Microsoft Azure Logic Apps Flow / PowerApps
  6. 6. Flow/Logic Apps とは • コネクタを利用して複数システムを連携(iPaas) – コネクタは用意されたものだけでなく自作も可能 – 既存サービスをカスタムコネクタとして登録可能 • デザイナー上での操作でほぼ完結する ローコード/コードレス開発(Low-Code / Codeless) • 自前の環境とも通信可能 – 自分のPCと Flow/LogicApps を繋げられる!
  7. 7. Microsoft Flow 料金プラン https://flow.microsoft.com/ja-jp/pricing/
  8. 8. Flow プランでの機能制限 Premium 系コネクタは Plan1 / 2 でのみ利用可能
  9. 9. Office 365 Enterprise F1 だけは特殊で 個人無償アカウントに近い状況となる
  10. 10. Logic Apps 従量課金プラン https://azure.microsoft.com/ja-jp/pricing/details/logic-apps/ Flow とは課金単位が異なる
  11. 11. Logic Apps/Flow 仕様と制限 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:制限事項と構成
  12. 12. 1 Action (Trigger) 1 Action 1 Action 1 Flow Flow の課金単位 LogicApps の課金単位
  13. 13. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch
  14. 14. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch 230 Connectors
  15. 15. OnPremiss Data Gateway 要 Office365/Flow Premium ライセンス • ServiceBus(Queue)を介した オンプレミス環境との接続 • Flow/オンプレミスそれぞれから ServiceBusに定期的に問合せを行う (ポーリングしている) • ファイアウォールは送信のみ設定が 必要な場合がある(受信は行わない) ゲートウェイをインストールした 端末から別PCへアクセスは可能 ゲートウェイを通じて同一LANの サービスにアクセスができる
  16. 16. Arcitechture
  17. 17. 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 の カプセル化
  18. 18. LogicFlow定義 (JSON) トリガ作成 実行開始 トリガ条件を満たした場合 処理のインスタンスを生成 アクションの 生成/開始 トリガごとに LogicFlow の インスタンスが生成され 関連データはインスタンス 単位で保持している
  19. 19. マイクロサービスな動作 同種のトリガであっても 状況は個別に保持するため 片方しか挙動しないこともある 新規メールある? 新規メールある? あるよ! ないよ!
  20. 20. トリガ・アクションの挙動 x LogicApps/Flow の タスクやアクションは 最低一度の実行を保証 何らかの理由で 応答なしな場合は 新しいトリガや アクションを生成する
  21. 21. 環境/リージョン アカウント(または組織)ごとに 必ず「既定の環境」が作成される
  22. 22. ユーザーは Azure Active Directory に登録される 異なる環境間では アクセスできない Flow 管理センターで 利用可能ユーザーの 追加やロールの割当 既定の環境は 全てのユーザーが 利用可能 x x
  23. 23. 「環境」は本番用/テスト用 といった用途に合わせて新 しく作成できる リージョンは設置される Azure 上のリージョンで 原則は近い地域を指定 環境種類で「試用版」と 「運用」を選択できるが ライセンスとは別
  24. 24. データポリシー Flow で利用するコネクタを 二つのグループに分けデー タ連携を制御する 仕事用データのありなしで 区分けする 適用させる環境は 選択できる 要 Flow P2 ライセンス
  25. 25. データ統合 異なる環境間のデータを CDS を通じて統合するため の仕組み 極論すると CDS(CDS for Apps)への インポート/エクスポート機能 定期/不定期な実行が可能 要 Office365/Flow Premium ライセンス
  26. 26. ライセンスの確認
  27. 27. クォータの確認 こちらだけ先頭に余分なヘッダが あるので Excel で開くと化ける
  28. 28. 一般データ保護規則(GDPR)/DSR 要求への対応 個人データが含まれるリソース 目的 システム生成ログ システムのイベントと履歴をキャプチャするテレメトリ。 実行履歴 過去 28 日間の各フローの実行の履歴。 このデータには、開始時刻、終了時刻、状態、およびフロー のすべての入力/出力情報が含まれています。 アクティビティ フィード 実行状態、エラー、通知など、フロー アクティビティの要約を提供します。 ユーザー ジョブ ユーザーには表示されない、フロー実行のためにユーザーに代わって実行されるシステム ジョブ。 フロー フローに対して存在するワークフロー ロジック。 フロー アクセス許可 フローは、他のユーザーと共有したり、他のユーザーに再割り当てしたりできます。 アクセス許可 リストはすべてのフローに存在します。 ユーザーの詳細 ユーザーが見ることはできない、フローの実行をサポートする詳細情報。 接続 コネクタによって使用され、API、システム、データベースなどに接続できます。 接続のアクセス許可 特定の接続のアクセス許可。 カスタム コネクタ カスタム システムまたはサードパーティ システムに接続できる、ユーザーが作成して公開したカス タム コネクタ。 カスタムコネクタアクセス許可 カスタム コネクタのアクセス許可リスト。 ゲートウェイ ゲートウェイは、Microsoft Flow とクラウド内にないデータ ソースの間ですばやく安全にデータを転 送するためにユーザーがインストールできるオンプレミスのデータ サービスです。 ゲートウェイのアクセス許可 ゲートウェイは、組織内のユーザーと共有することができます。 https://docs.microsoft.com/ja-jp/flow/gdpr-dsr-summary
  29. 29. Service Form Detail
  30. 30. マイフロー
  31. 31. 業務プロセスフロー Dynamics365 で提供されている 機能でデータに対して業務 プロセスを関連付けられる データベースのトリガに イメージが近い
  32. 32. フロー詳細画面
  33. 33. 「今すぐ実行」は スケジュールトリガか ボタントリガ利用時に限定 「名前をつけて保存」は フローのコピーを作成
  34. 34. 実行状況の分析
  35. 35. エラー状況の分析
  36. 36. 実行履歴
  37. 37. エクスポート
  38. 38. エクスポートされた zip ファイル
  39. 39. インポート インポート時にエラーと なるものはこのタイミングで 新規に作成するか、または 既存のフローを上書きするか を選択できる
  40. 40. 自分に来ている承認依頼と 誰かに送信した承認依頼、 これまでの履歴が確認できる Flow の保持期間は 28 日 だがそれ以前も履歴が残る
  41. 41. How to Create Flow
  42. 42. テンプレートからの作成
  43. 43. テンプレートの概要と 利用するために必要な接続 情報が表示される 初めて利用する接続の場合 この画面から接続情報を 作成する
  44. 44. 完全に1から作成する場合は最初にトリガーを選択する
  45. 45. Logic Apps では 最近アップデートされ 最初の選択時にコネクタの 大分類で分けて表示される 今後 Flow にも適用される 可能性はそれなりにある
  46. 46. トリガもアクションも設置後に 削除して置換えが可能だが 後続のアクションで値を 利用している時は削除できない
  47. 47. よく使うトリガ:スケジュール 定期的に処理を実行する際に利用 「毎週〇曜日の□時」 「毎月〇日、□日の△時」 といった指定が可能 プランによって指定できる 最小頻度に制限がある
  48. 48. よく使うトリガ:ボタン モバイルまたはWebサイト上から実行を指示できる その際に何かしらの入力を行うことができ 選択肢からの選択やファイルのアップロードが可能 Android や iPhone の メニュー画面に 直接配置可能
  49. 49. Webサイト上からの ボタントリガでも 位置情報は利用可能 (おそらくヘッダに含まれる IP アドレスより検索)
  50. 50. よく使うトリガ:要求 外部からのHTTP呼出に対応 スキーマを定義すると 後続のアクションでダイアログ から選択も可能になる またスキーマに合致しない値に 対して HTTP エラーを返却可能
  51. 51. 分割: 受信したデータを行単位で分割 処理の同時実行性を向上させる 同時実行制御: 同時に実行できる処理数を指定
  52. 52. トリガの起動条件 https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-workflow-actions-triggers トリガーに条件設定 を付与してLogicFlow の開始を限定させる ことが可能 "triggers": { "manual": { "type": "Request", "kind": "Http", "inputs": { "schema": { }, "method": "POST" }, "conditions": [ { "expression": "@equals(empty(triggerBody()), false)" } ] } }, JSON での定義を直接 編集する必要がある デザイナーから設定 できないがLogicFlow 定義としてサポート
  53. 53. Demo. Trigger Condition
  54. 54. 終了アクションは 「成功」「失敗」「取り消し済み」が指定可能 実行時に LogicFlow の処理はそこで終わる 「スキップ」でないので課金は発生します( 終了
  55. 55. 条件判断 / Condition IF ~ THEN ~ ELSE(条件分岐) Switch Case(条件多分岐)
  56. 56. Logic Apps では もう少し構造的に 条件を設定可能
  57. 57. 繰り返し / Loop Do Until ループ ループが一定時間内に終了しない場合に タイムアウトとする場合は ISO 8601 形式でタイムアウト条件を設定 必ずシーケンシャルに動作する
  58. 58. 繰り返し / Loop ForEach ループ 規定では 20 アクションの並列動作 operationOptions:Sequential または 設定から変更可能
  59. 59. ブロック化 / Scope 処理のブロック化
  60. 60. Try-Catch-Finally
  61. 61. 変数と定数 作成などで用意したものは 値の書き換えは不可 変数だけが値の書き換えが可能
  62. 62. Workflow Functions
  63. 63. 演算子 / Operator . ? ‘ [] ?演算子は特に重要で 値がない事が想定される場合は 必ず使うのがよい
  64. 64. 文字列を作成する場合は 関数を利用しなくても直接 書き込むことが可能 concat(outputs('作成_2'),',',variables('katakana')) デザイナー上で指定したものと 関数で作成したものは 同一の結果になる
  65. 65. デザイナー上で直接入力した場合、 うまく動かないことが多いので できるだけダイアログ上で入力を 行うのがよい
  66. 66. Demo. Workflow Functions
  67. 67. まとめ:LogicFlow をどう作るか • トリガありきなので「〇〇が起きた時」に何かする、 というのを起点に考える • サービスに対応しているコネクタは積極的に利用する • ある程度以上の処理など不向きなものもあるので LogicFlow だけでどうこうすることにこだわらない • HTTP で呼び出せるサービスは原則利用可能と思ってよい • Flow は縦に長い LogicFlow を作るほうが課金的によい Logic Apps は課金に関連しないので短いほうが良い
  68. 68. Appendix
  69. 69. Appendix • LogicFlow-ja ( https://www.facebook.com/groups/logicflowja/ ) • 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

×