Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LogicFlow Overview + α

Ahf
February 18, 2018

LogicFlow Overview + α

2018/02/17 LogicFlow-ja offline #2 で利用した概要説明スライド

Ahf

February 18, 2018
Tweet

Other Decks in Technology

Transcript

  1. 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 ~)
  2. Agenda • LogicApps/Flow/PowerApps とは – LogicFlow 基本機能 – LogicApps と

    Flow の違い – HybridConnection と OnPremiss DataGateway – Enterprise Integration Pack • LogicFlow の各機能
  3. > ≧ IFTTT は非常に多くのサービスと連携可能 間に制御を挟まないシンプル構成 IFTTT / Flow / LogicApps

    Flow / LogicApps はユーザーが制御を挟む余地がある サービス数はまだ限られている 一般ユーザー ITPro
  4. Logic Apps/Flow 仕様と制限 最大実行継続時間 90 日 ストレージリテンション期間 90 日 最小繰り返し時間

    1 秒 最大繰り返し間隔 500 日 ForEach レコード数 100,000 Loop Until 回数 5,000 SplitOn 最大数 100,000 ForEach 並列処理数 20 アクション実行数(5分間) 100,000 同時呼出し数 2,500 エンドポイント同時受信数 1,000 エンドポイント読み取り可能呼出し数 60,000 エンドポイント起動可能呼出し数 45,000 ワークフローでのアクション数 250 ワークフロー内部でのネスト数 5 1リージョンでのワークフロー数 1,000 ワークフローごとのトリガ数 10 一つの式での最大文字数 8,192 アクション/トリガ名の文字数 80 コメントの文字数 256 パラメーター数 50 高スループットモード登場
  5. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service

    Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch
  6. LogicFlow 基本構造 LogicFlow から呼び出される コネクタは API Management 配下に存在する API Management

    により リージョンごとの 利用可能・不可能を制御 アクションやトリガが発生した タイミングでコネクタの インスタンスが生成される https://logic-apis-westcentralus.azure-apim.net/apim/staffhub このような感じでコネクタが準備されている
  7. LogicFlow 基本コネクタ スケジュール OpenAPI(Swagger) 定義された API 呼出 HTTPS リクエスト RSS

    FTP/SFTP HTTP/HTTPS WebHook Mail(SendGrid) SMTP 変数 制御 HTTP レスポンス データ操作 PowerApps プッシュ通知 Flow Button HTML-テキスト変換 PowerApps用プッシュ通知
  8. inputArguments.Select(Function(x) Return New With {Key x.orgArg1, Key x.orgArg2, Key Sum(x.orgArg3)}

    End Function).ToArray 選択/ Selecct 配列オブジェクトの再定義
  9. 補足)HTTP 系コネクタの仕様と制限 Request Response HTTP ステータス 200 が正常終了 202 は処理継続中として

    Retry-After ヘッダ値に基づいてポーリング Location ヘッダの値がある場合、再試行時にリクエストを投げる URL が変化 再試行ポリシーはアクションごとに設定可能 http://blogahf.blogspot.jp/2017/07/logicflow-http.html
  10. 関数 / 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 CodeView および関数ダイアログ上でサポートあり
  11. 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/
  12. Hybrid Connection (ServiceBus – Relay) OnPremiss Data Gateway (ServiceBus –

    Queue) OnPremiss DataGateway 対象コネクタ DataGateway はメッセージを ポーリングする方式でやり取りを行う (リアルタイム性は若干落ちる) 要 Office365/Flow Premium ライセンス
  13. DataGateway 利用ポート TCP 443 (既定値) / 5671 / 5672 /

    9350 ~ 9354 データ送信のみで受信は必要ない HTTPS を強要する場合は config ファイルの書き換えかインストーラから設定
  14. Enterprise Integration 統合アカウント ファイルからのエンコード ファイルへのデコード XML の検証 XML 変換 EDIFACT

    AS2 X12 特定プロトコルの コネクタは用意済 Visual Studio に EIP 拡張機能をインストール VS 上でスキーマやマップの定義を行い Azure へアップロードが必要 Liquid での変換
  15. BizTalk Server Architecture BizTalk Server Architecture BizTalk Service Architecture BizTalk

    の「オーケストレーション」部分を Enterprise Integration Pack として提供
  16. Azure Monitor(Alert) の LogicApps 呼出し Azure の各種サービスでAlert が発生した際に 実行する LogicApps

    を指定できる Alert ルールはメトリックとして定義可能 Flow で定義した LogicFlow を呼出したい際は Webhook として Request コネクタで 生成された URL を指定することで可能 (ブレード上 LogicApps 呼出がない際も同様) 発生した Alert の集約も非常に簡単に行える
  17. Common Data Service(CDS) PowerApps で参照可能(Flow では Premium 必要) CDS の設定などには

    Plan2 契約が必要 利用頻度の 高そうなものは 全て定義済み テーブル定義を 考えずに DB を 利用できる
  18. 承認 / Approval Flow Premium(または Office365 FreePlan) で可能 活用するには Office365

    ユーザーが必要 Flow モバイルアプリ または Flow ウェブサイト上で承認行為が可能
  19. LogicApps の高可用性対応 API Management リダイレクト先の調整 ServiceBus メッセージング形式の構築 Hot-Cold 的に構築 動作中のリージョンで障害発生時に

    COLD 側へ切り替えさせる 常に全てのリージョンで動作するよう構築 LogicApps の課金としては変化なし (トリガで対象データなしは無課金)
  20. PowerApps/Flow が向いている領域 • ネイティブアプリを作るまでもないちょっとした事のシステム化 • 日頃の作業を少しだけ便利に • 一部メンバー間に限定して実施したい • 社内用、部門用システムを短期間で用意したい

    • スマートフォンを安価に活用したい LogicApps が向いている領域 • API をできるだけ簡単に用意し公開したい • EOS/EDI などデータ連携や変換が多くなる時に • コードを書いて負債を増やしたくない • コードを書かなくてもできる事でコードを書きたくない 「やればできる」と「適している」は別
  21. 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
  22. EventGrid とは • 低コストで自動スケーリングするイベント配信機構 • 大量イベントメッセージも問題なし • Azure Subscription や

    ResourceGroup の変更をキャッチ • メッセージの順番が重要な場合には不向き – その場合は EventHub – EventHub 以外は順番を保証していない
  23. Azure Subscription や Azure Resource Group の 変更検知は EventGrid Subscription

    の設定で可能 内部的には HTTP Request コネクタが生成した URL を EventGrid Subscription の WebHook 先に 設定している
  24. EventGrid コネクタは • Azure Subsription • Azure Resource Groups •

    EventGrid Topics • Eventhub Namespaces • IoTHubs • Storage Accounts • Azure Container Registry に現時点で対応 通知できるイベント種類
  25. Appendix • Azure Resoruce Manager のプロバイダ操作 ( https://docs.microsoft.com/ja-jp/azure/active-directory/role- based-access-control-resource-provider- operations#microsoftcompute

    ) • Azure Resource Manager コネクタ ( https://docs.microsoft.com/ja- jp/connectors/arm/#invoke_resource_operation ) • Resource Manager REST API ( https://docs.microsoft.com/ja-jp/azure/azure-resource- manager/resource-manager-rest-api )