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.

20180929 lowcode developlogicflow

450 views

Published on

2018/09/29 きたあず勉強会で利用したスライド

Published in: Technology
  • Be the first to comment

20180929 lowcode developlogicflow

  1. 1. LowCode Develop using LogicFlow 2018/09/29 LogicFlow-ja 小尾 智之 #LogicApps #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. Logic Apps/Flow とは • コネクタを利用して複数システムを連携(iPaas) – コネクタは用意されたものだけでなく自作も可能 – 既存サービスをカスタムコネクタとして登録可能 • デザイナー上での操作でほぼ完結する ローコード/コードレス開発(Low-Code / Codeless) • 自前の環境とも通信可能 – 自分のPCと Flow/LogicApps を繋げられる
  6. 6. Dynamics365 Office365 Microsoft Azure Logic Apps Flow / PowerApps
  7. 7. Business Personal • 制限ないコネクタ • 従量課金と AppService Plan の使い分け • Enterprise Integration • Azure 監視機能との 統合 • 同一グループへ通知 • 企業内/部門内で 利用する アプリケーションの 作成 • 個人端末への通知 • スマートフォン からのボタントリガ
  8. 8. Logic Apps 従量課金プラン https://azure.microsoft.com/ja-jp/pricing/details/logic-apps/
  9. 9. Microsoft Flow 料金プラン https://flow.microsoft.com/ja-jp/pricing/
  10. 10. Flow プランでの機能制限 Premium 系コネクタは Plan1 / 2 でのみ利用可能
  11. 11. Office 365 Enterprise F1 だけは特殊で 個人無償アカウントに近い状況となる
  12. 12. 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 5 分あたりのコンテンツスループット 600 MB 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:制限事項と構成
  13. 13. 1 Action (Trigger) 1 Action 1 Action 1 Flow Flow の課金単位 LogicApps の課金単位
  14. 14. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch Management
  15. 15. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch Management 239 Connectors
  16. 16. Twitter 上で毎日新規コネクタのチェックを実施中 日曜日には今週追加されたコネクタの統括も Tweet 中(LogicApps – Batch を利用)
  17. 17. OnPremiss Data Gateway 要 Office365/Flow Premium ライセンス • ServiceBus(Queue)を介した オンプレミス環境との接続 • LogicFlow/オンプレミスそれぞれ ServiceBusに定期的に問合せを行う (ポーリングしている) • ファイアウォールは送信のみ設定が 必要な場合がある(受信設定は不要) ゲートウェイをインストールした 端末から別PCへアクセスは可能 ゲートウェイを通じて同一LANの サービスにアクセスができる
  18. 18. Logic Apps Arcitechture
  19. 19. LogicApps/Flow アーキテクチャ Logic Apps RP Connection Manager Logic Apps Runtime Connector Runtime Logic Apps RP LogicFlow 構成を読み取り 依存性を加味してタスクを構成 Logic Apps Runtime 各タスクを実行できるよう調整 Connection Manager API 接続にまつわる部分の管理 Connector Runtime OpenAPI 仕様に基づく API の カプセル化
  20. 20. LogicFlow定義 (JSON) トリガ作成 実行開始 トリガ条件を満たした場合 処理のインスタンスを生成 アクションの 生成/開始 トリガごとに LogicFlow の インスタンスが生成され 関連データはインスタンス 単位で保持している
  21. 21. マイクロサービスな動作 同種のトリガであっても 状況は個別に保持するため 片方しか挙動しないこともある 新規メールある? 新規メールある? あるよ! ないよ!
  22. 22. トリガ・アクションの挙動 x LogicApps/Flow の タスクやアクションは 最低一度の実行を保証 何らかの理由で 応答なしな場合は 新しいトリガや アクションを生成する
  23. 23. How to Create Flow
  24. 24. Logic Apps では 選択 UI がアップデートされ 最初の選択時にコネクタの 大分類で分けて表示される 今後 Flow にも適用される 可能性はそれなりにある ビルトイン:LogicFlow 基本コネクタ コネクタ:外部サービス連携コネクタ Enterprise:ビジネス用コネクタ (課金が異なる) カスタム:登録したカスタムコネクタ
  25. 25. トリガもアクションも設置後に削除 して置換えが可能だが 後続のアクションで値を 利用している時は削除できない (Batch トリガのみ例外で置換不可)
  26. 26. トリガの起動条件 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 定義としてサポート
  27. 27. 条件判断 / Condition IF ~ THEN ~ ELSE(条件分岐) Switch Case(条件多分岐)
  28. 28. Logic Apps では もう少し構造的に 条件を設定可能
  29. 29. 繰り返し / Loop Do Until ループ ループが一定時間内に終了しない場合に タイムアウトとする場合は ISO 8601 形式でタイムアウト条件を設定 必ずシーケンシャルに動作する
  30. 30. 繰り返し / Loop ForEach ループ 規定では 20 アクションの並列動作 operationOptions:Sequential または 設定から変更可能
  31. 31. ブロック化 / Scope 処理のブロック化
  32. 32. IF コネクタでエラー判定しなくとも このような形でエラー処理が作成できる 条件判断しなくてもよいケース
  33. 33. Try-Catch-Finally
  34. 34. 変数と定数 作成などで用意したものは 値の書き換えは不可 変数だけが値の書き換えが可能
  35. 35. バッチ / Batch ・一定回数呼び出される ・定期的に実行する ・一定量のメッセージを受け取る などをトリガにして起動できる 内部で特殊な仕組みを構築している ため、一度設置するとトリガの置き 換えが行えなくなる (LogicFlow の削除で対応)
  36. 36. 演算子 / Operator . ? ‘ [] ?演算子は特に重要で 値がない事が想定される場合は 必ず使うのがよい
  37. 37. 関数 / Workflow Functions Referencing functions Collection functions String functions Logical functions Conversion functions Math functions Date functions Workflow functions デザイナ上でインテリセンス等サポートはない https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-workflow-definition-language
  38. 38. Sample. Push Notification API
  39. 39. 呼び出すと 自分のスマートフォンに 通知を行う 難しいことを 一切抜きで通知が行える
  40. 40. Sample. Check Github Documents Commit
  41. 41. Github API を利用して 特定リポジトリフォルダに対する コミット履歴を取得 https://developer.github.com/v3/
  42. 42. HTTP コネクタをトリガに設定 URI で Github API を指定 その際に「前日まで」な条件を クエリパラメータにて指定 BASIC 認証や OAuth も対応している Github API は認証未使用でも利用可 ※IP アドレス単位でリミットあり
  43. 43. 実行結果
  44. 44. まとめ • サービス間結合が必要なケースに Logic Apps/Flow は最適 • 処理と処理を結合するオーケストレーションも最適 • 自前で処理を行うことは可能であっても不向き どこまでやるかの線引きは必要 • プログラムを作らなくても対応できるケースが増える プログラマでなくても作ることができるケースが増える
  45. 45. Logic Apps/Flow に適した開発 • システム間での接続が必要な場面 • 複雑ではない処理で対応できる場面 • 一時的にAPIが必要な場面 • 高頻度のアクセス • 早い反応速度 • 高パフォーマンス
  46. 46. Appendix
  47. 47. 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

×