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.

LogicFlow 概要

480 views

Published on

2017/11/18 LogicFlow-ja offline にて利用したスライド

Published in: Technology
  • Be the first to comment

LogicFlow 概要

  1. 1. LogicFlow Overview 2017/11/18 LogicFlow-ja 小尾 智之
  2. 2. Self Introduction Attribute1: VB / LogicApps-Flow-PowerApps @twit_ahf Attribute2: 提督 / 殿 / メガネ / クマ / プロレス /もっふり tomoyuki.obi http://el.jibun.atmarkit.co.jp/ahf Community: LogicFlow-ja / CLR/H Microsoft MVP for Microsoft Azure(2017.03 ~)
  3. 3. https://www.facebook.com/groups/logicflowja/
  4. 4. Agenda ・LogicApps/Flow 概要
  5. 5. Session Goal • LogicFlow が適している場面を理解する • LogicFlow でできることを理解する
  6. 6. LogicFlow is iPaas
  7. 7. iPaas is Integration Platform as a Service
  8. 8. > ≧ IFTTT は非常に多くのサービスと連携可能 間に制御を挟まないシンプル構成 IFTTT / Flow / LogicApps Flow / LogicApps はユーザーが制御を挟む余地がある サービス数はまだ限られている 一般ユーザー ITPro
  9. 9. Trigger Action Action LogicFlow の構造 発生したイベントをトリガで受け取り 後続のアクションで処理を行う
  10. 10. Price Plan
  11. 11. LogicApps 従量課金プラン LogicApps AppService プラン https://azure.microsoft.com/ja-jp/pricing/details/logic-apps/ Flow とは課金単位が異なる
  12. 12. 1 Action 1 Action 1 Action 1 Flow LogicApps の課金単位 Flow の課金単位
  13. 13. LogicApps 仕様と制限 最大実行継続時間 90 日 ストレージリテンション期間 90 日 最小繰り返し時間 1 秒 最大繰り返し間隔 500 日 ForEach レコード数 100,000 Loop Until 回数 5,000 SplitOn 最大数 100,000 ForEach 並列処理数 50 アクション実行数(5分間) 100,000 同時呼出し数 2,500 エンドポイント同時受信数 1,000 エンドポイント読取可能呼出し数 60,000 エンドポイント起動可能呼出し数 45,000 ワークフローでのアクション数 250 ワークフロー内部でのネスト数 5 1リージョンのワークフロー数 1,000 ワークフローごとのトリガ数 10 一つの式での最大文字数 8,192 アクション/トリガ名の文字数 80 コメントの文字数 256 パラメーター数 50
  14. 14. Microsoft Flow 料金プラン 1 ユーザー 25 LogicFlow が定義可能 (リクエスト送付で拡張可能)https://flow.microsoft.com/ja-jp/pricing/
  15. 15. Flow プランでの機能制限 Premium 系コネクタは Plan1 / 2 でのみ利用可能
  16. 16. PowerApps 料金プラン
  17. 17. https://powerapps.microsoft.com/ja-jp/communityplan/ PowerApps コミュニティプラン 既にアカウントを所有していても作成可能
  18. 18. Service Connectors
  19. 19. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch
  20. 20. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch LogicApps Only
  21. 21. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch Flow Only
  22. 22. Connector Detail
  23. 23. LogicFlow 基本コネクタ スケジュール OpenAPI(Swagger) 定義された API 呼出 HTTPS リクエスト RSSFTP/SFTP HTTP/HTTPS WebHook Mail(SendGrid) SMTP 変数 制御HTTP レスポンス データ操作 PowerApps プッシュ通知 Flow Button HTML-テキスト変換 PowerApps用プッシュ通知
  24. 24. 条件判断 / Condition IF ~ THEN ~ ELSE(条件分岐) Switch Case(条件多分岐)
  25. 25. 繰り返し / Loop Do Until ループ ループが一定時間内に終了しない場合に タイムアウトとする場合は ISO 8601 形式でタイムアウト条件を設定
  26. 26. 繰り返し / Loop ForEach ループ 規定では 20 アクションの並列動作 operationOptions:Sequential で変更可能 デザイナ上だけで ネストしたループも作成可能
  27. 27. 並列動作アクション数は デザイナー上からも調整可能
  28. 28. ブロック化 / Scope 処理のブロック化
  29. 29. 実行条件の構成 / RunAfter ブロック化した場合は 「ブロック内部の処理が何か一つでも失敗したら」 という条件で利用できる
  30. 30. 並列分岐 / RunAfter(2) デザイナー上から 並列動作させるアクションを 直接設定可能 RunAfter 設定を変更し どのコネクタの後に実行するかを 設定している
  31. 31. IF コネクタでエラー判定しなくとも このような形でエラー処理が作成できる
  32. 32. ドラッグ&ドロップで 移動可能
  33. 33. 変数/ Variables 初期化を先に実施する必要がある
  34. 34. 変数の初期化はループ内部では利用不可
  35. 35. データ操作 / Compose 関数で行っていたものが コネクタ化され 簡易に利用可能
  36. 36. inputArguments.Select(Function(x) Return New With {Key x.orgArg1, Key x.orgArg2, Key Sum(x.orgArg3)} End Function).ToArray 選択/ Selecct 配列オブジェクトの再定義
  37. 37. バッチ / Batch 一定回数呼び出される 定期的に実行する 一定量のメッセージを 受け取るなどをトリガに して起動できる
  38. 38. 再試行ポリシー/ Retry Policy 動作エラーになったものを 何回(Limit) どの程度の間隔で(Duration) 再実行するかを設定
  39. 39. HTTP コネクタの仕様と制限 Request Response HTTP ステータス 200 が正常終了 202 は処理継続中として Retry-After 値に基づいてポーリング Location ヘッダの値がある場合 再試行時にリクエストを投げる URL が変化 ワークフローが開始されるのは ステータス 200 の時に限定される http://blogahf.blogspot.jp/2017/07/logicflow-http.html
  40. 40. Trigger
  41. 41. CodeView 上で LogicFlow を直接記載 デザイナーでは未サポート 動作自体は問題なく可能 マルチトリガ / Multi Trigger
  42. 42. @triggerOutputs() 関数にて呼出時に付与されていた クエリパラメータを取得できる Request トリガにおけるクエリパラメータ @triggerOutputs()['queries']['test1'] などでパラメータを利用可能
  43. 43. Workflow Function
  44. 44. 演算子 / Operator . ? ‘ [] ?演算子は特に重要で 値がない事が想定される場合は 必ず使うのがよい
  45. 45. 関数 / Workflow Functions Referencing functions Collection functions String functions Logical functions Conversion functions Math functions Date functions URI functions https://docs.microsoft.com/ja-jp/azure/logic-apps/ logic-apps-workflow-definition-language インテリセンス サポートあり Manipulation functions Workflow functions
  46. 46. Functions の書き方 最初の関数のみ @ をつける必要がある (CodeView のみ) 文字列は ‘ でのみ囲める デザイナー上で記載する場合は 「詳細設定」 LogicApps なら CodeView で 記載するのを活用
  47. 47. Workflow Functions のコネクタ対応 一部関数はコネクタとして提供も行っている
  48. 48. Azure API App 同一サブスクリプション上に ある API Apps を呼出可能 トリガ/アクション 両方を利用可能
  49. 49. OpenAPI API Apps での OpenAPI(Swagger)設定 によりダイアログでの表示など カスタマイズ可能 メソッドなどへ属性を付与してデザイナ上の表示を指定 T-Rex ライブラリも利用可能(https://github.com/nihaue/TRex) [HttpPost, Route] [Metadata("Create Message", "Creates a new message absolutely nowhere")] [SwaggerResponse(HttpStatusCode.OK, Type = typeof(SampleOutputMessage))] public async Task<IHttpActionResult> Post([FromBody] [Metadata("Sample Input", "A sample input message")] SampleInputMessage sampleInput) { return await SampleOutputMessage.FromInputAsync(sampleInput); } 参考)https://flow.microsoft.com/ja-jp/documentation/customapi-how-to-swagger/
  50. 50. Azure Function App LogicFlow デザイナー上で 直接 FunctionApp を記述可能 (ただし js のみ)
  51. 51. Custom Connector
  52. 52. 外部 API を事前に登録することで 他コネクタと同様に利用させる ことが可能 アイコンや説明文なども設定できるので 詳しくない人でも利用できるようになる
  53. 53. カスタムコネクタ登録
  54. 54. カスタムコネクタ登録により 他のコネクタと比較しても判別つかない形で コネクタを提供することが可能 利用する側にとっては 詳細な設定を毎回行う必要がないので 利便性が高い
  55. 55. OnPremiss Data Gateway
  56. 56. Hybrid Connection (ServiceBus – Relay) OnPremiss Data Gateway (ServiceBus – Queue) OnPremiss DataGateway 対象コネクタ DataGateway はメッセージを ポーリングする方式でやり取りを行う (リアルタイム性は若干落ちる)
  57. 57. •ルートフォルダ:接続先 PC でのローカルパス (共有はかけなくても大丈夫) •認証タイプ:Windows 認証 •ユーザー名:(マシン名)¥(アカウント) を入力 AD アカウントではないので注意! •パスワード:パスワードを入力 •ゲートウェイ:インストールしたゲートウェイを選択
  58. 58. DataGateway 利用ポート TCP 443 (既定値) / 5671 / 5672 / 9350 ~ 9354 データ送信のみで受信は必要ない HTTPS を強要する場合は config ファイルの書き換えか インストーラから設定
  59. 59. Enterprise Integration
  60. 60. Enterprise Integration 統合アカウント ファイルからのエンコード ファイルへのデコード XML の検証 XML 変換 EDIFACT AS2 X12 特定プロトコ ルのコネクタ は用意済 VS 上でスキーマやマップの 定義を行い Azure へアップロードが必要 (現時点では VS2015 限定)
  61. 61. BizTalk Server Architecture BizTalk Service Architecture オーケストレーション部分が Enterprise Integration Pack
  62. 62. 統合アカウント B2B などで EDI/EOS をする際の 情報を登録 マップは xslt と Liquid Template に対応
  63. 63. LogicFlow Configration
  64. 64. 実行履歴 / History コネクタによっては BASE64 し 結果をやり取りするものもある
  65. 65. バージョン履歴 / Version 編集履歴より 過去のバージョンへ 戻すことが可能 履歴表示時に 「昇格」 で復元される
  66. 66. テンプレート生成 / Template Template 化することで Github などからの デプロイも可能
  67. 67. 新規作成時のデフォルト値を 定義したテンプレートも作成可能
  68. 68. Azure Alert の LogicApps 呼出し Azure の各種サービスでAlert が発生した際に 実行する LogicApps を指定できる Alert ルールはメトリックとして定義可能 Flow で定義した LogicFlow を呼出したい際は Webhook として Request コネクタで 生成された URL を指定することで可能 (ブレード上 LogicApps 呼出がない際も同様) 発生した Alert の集約も非常に簡単に行える
  69. 69. LogicApps の呼び出し元 IP アドレス LogicAppsからアクセスした 場合の IP アドレス
  70. 70. LogicApps のセキュリティ LogicFlow にアクセスできる IP アドレスの制限を指定可能
  71. 71. Flow のセキュリティ 複数の環境を作成して ユーザーを切り分ける 接続可能なコネクタルールを定義し 不用意にデータ流出を行えなくする
  72. 72. Log Analytics 細かい設定なしで LogicApps のログ情報を OMS へと連携が可能
  73. 73. Flow/PowerApps Limited
  74. 74. ボタン / Button Flow モバイルアプリ導入で利用可能 端末 / Web サイトより実行可能 作成したボタントリガはメニュー上に ウィジェットとして配置することが可能
  75. 75. 通知 / Notification Flow モバイルアプリ導入で利用可能 自分の端末へのプッシュ通知 / メールによる通知 PowerApps で利用可能(ブラウザ上では未対応) アプリケーション単位での通知(特定ユーザーも可) PowerApps Notification Notification
  76. 76. 承認 / Approval Flow Premium(または Office365 FreePlan) で可能 活用するには Office365 ユーザーが必要 Flow モバイルアプリ または Flow ウェブサイト上で承認行為が可能
  77. 77. Functions App Proxy
  78. 78. Function Apps Proxy と API Management Services どちらも LogicFlow を 呼び出すプロキシとして 利用可能
  79. 79. 特定のメソッドで呼び出された際に API を呼び出すことが可能 Function Apps Proxy
  80. 80. Other Contents
  81. 81. LogicApps の高可用性対応 API Management リダイレクト先の調整 ServiceBus メッセージング Hot-Cold 的に構築 動作中のリージョンで障害発生時に COLD 側へ切り替えさせる 常に全てのリージョンで動作するよう構築 LogicApps の課金としては変化なし (トリガで対象データなしは無課金)
  82. 82. LogicApps Orchestration Functions App でチェーン的に つなぎ処理を構築するよりも LogicApps から Functions App を 呼び出させる方が、処理が正常に 動作しているかも把握しやすく 修正しやすい 高レスポンスを求めないならば Functions をチェーンしない方が良い
  83. 83. LogicApps Ludicrous Mode LogicApps 上に仕込みは済んでいるので そう遠くない時期に公開予定 高パフォーマンス用 LogicApps 16ユニット以上の構成 高スケール対応が可能
  84. 84. PowerApps/Flow が向いている領域 • アプリを作るまでもないちょっとした事のシステム化 • 日頃の作業を少しだけ便利に • 一部メンバー間に限定して実施したい • 社内用、部門用システムを短期間で用意したい • スマートフォンを安価に活用したい LogicApps が向いている領域 • 複数サービス間での連携が必要 • EOS/EDI などデータ連携や変換が多くなる時に • コードを書いて負債を増やしたくない • コードを書かなくてもできる事でコードを書きたくない
  85. 85. Let’s develop without coding, and Welcome to Serverless !
  86. 86. 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

×