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.

1st step LogicFlow

1,400 views

Published on

2017/06/24 Interact 2017 CL02 で利用したセッションスライド

Published in: Technology

1st step LogicFlow

  1. 1. The 1st Step LogicFlow 2017/06/24 小尾 智之
  2. 2. Self Introduction Attribute1: VB / LogicApps-Flow @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/PowerApps とは – LogicFlow 基本機能 – LogicApps と Flow の違い – HybridConnection と OnPremiss DataGateway – Enterprise Integration Pack • LogicFlow の各機能 • Flow/PowerApps モバイルアプリ
  5. 5. LogicFlow is iPaas
  6. 6. iPaas = Integration Platform as a Service
  7. 7. > ≧ IFTTT は非常に多くのサービスと連携可能 間に制御を挟まないシンプル構成 IFTTT / Flow / LogicApps Flow / LogicApps はユーザーが制御を挟む余地がある サービス数はまだ限られている 一般ユーザー ITPro
  8. 8. トリガ アクション LogicFlow の基本形 イベントをトリガで受け取り 後続のアクションで処理を 行うサーバーレスなもの
  9. 9. Ver 2014-12-01
  10. 10. Ver 2015-08-01
  11. 11. Ver 2016-06-01
  12. 12. LogicApps はそろそろ GA 1 周年 アイコンも新しくなって1年弱
  13. 13. LogicApps 従量課金プラン LogicApps AppService プラン https://azure.microsoft.com/ja-jp/pricing/details/logic-apps/ Flow とは課金単位が異なる
  14. 14. LogicApps プランの切り替え Param( [string] $AppService_RG = {AppService の ResourceGropu 名}, [string] $AppService_Name = {AppService の名前}, [string] $LogicApp_RG = {LogicApps の ResourceGroup 名}, [string] $LogicApp_Name = {LogicApps の名前}, [string] $subscriptionId = {サブスクリプションのID} ) Login-AzureRmAccount Set-AzureRmContext -SubscriptionID $subscriptionId $subscription = Get-AzureRmSubscription -SubscriptionId $subscriptionId $appserviceplan = Get-AzureRmResource -ResourceType "Microsoft.Web/serverFarms" - ResourceGroupName $AppService_RG -ResourceName $AppService_Name $logicapp = Get-AzureRmResource -ResourceType "Microsoft.Logic/workflows" - ResourceGroupName $LogicApp_RG -ResourceName $LogicApp_Name $sku = @{ "name" = $appservicePlan.Sku.tier; "plan" = @{ "id" = $appserviceplan.ResourceId; "type" = "Microsoft.Web/ServerFarms"; "name" = $appserviceplan.Name } } $updatedProperties = $logicapp.Properties | Add-Member @{sku = $sku;} -PassThru $updatedLA = Set-AzureRmResource -ResourceId $logicapp.ResourceId -Properties $updatedProperties -ApiVersion 2016-06-01 Add-AzureRmAccount Set-AzureRmContext -SubscriptionID {SubscriptionID} Set-AzureRmLogicApp -ResourceGroupName {ResourceGroupName} -Name {LogicFlowName} -AppServicePlan {PlanName} 要 EA 契約 (または GA 前の LogicApps) Ptn 1: Ptn 2:
  15. 15. LogicApps 仕様と制限 最大実行継続時間 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
  16. 16. Microsoft Flow 料金プラン 1 ユーザー 25 LogicFlow が定義可能 (リクエスト送付で拡張可能)https://flow.microsoft.com/ja-jp/pricing/
  17. 17. Flow プランでの機能制限 Premium 系コネクタは Plan1 / 2 でのみ利用可能
  18. 18. PowerApps 料金プラン
  19. 19. https://powerapps.microsoft.com/ja-jp/communityplan/ PowerApps コミュニティプラン
  20. 20. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval
  21. 21. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval LogicApps Only
  22. 22. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Flow Only
  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 ループ ForEach ループ ループが一定時間内に終了しない場合に タイムアウトとする場合は ISO 8601 形式でタイムアウト条件を設定 規定では 20 アクションの並列動作 operationOptions:Sequential で変更可能
  26. 26. ブロック化 / Scope 処理のブロック化
  27. 27. 実行条件の構成 / RunAfter ブロック化した場合は 「ブロック内部の処理が何か一つでも失敗したら」 という条件で利用できる
  28. 28. 並列分岐 / RunAfter(2) デザイナー上から 並列動作させるアクションを直接設定可能 RunAfter 設定を変更し どのコネクタの後に実行するかを 設定している
  29. 29. 変数/ Variables 初期化を先に実施する必要がある
  30. 30. データ操作 / Compose 関数で行っていたものが コネクタ化され簡易に利用可能
  31. 31. inputArguments.Select(Function(x) Return New With {Key x.orgArg1, Key x.orgArg2, Key Sum(x.orgArg3)} End Function).ToArray 選択/ Selecct 配列オブジェクトの再定義
  32. 32. inputArguments.Select(x => new {x.orgArg1, x.orgArg2, Sum(x.orgArg3)}).ToArray() 選択/ Selecct
  33. 33. 再試行ポリシー/ Retry Policy 動作エラーになったものを 何回(Limit) どの程度の間隔で(Duration) 再実行するかを設定
  34. 34. HTTP コネクタの仕様と制限 Request Response HTTP ステータス 200 が正常終了 202 は処理継続中として Retry-After ヘッダ値に基づいてポーリング Location ヘッダの値がある場合、再試行時にリクエストを投げる URL が変化 ワークフローが開始されるのは、ステータス 200 の時に限定される 再試行ポリシーは HTTP コネクタに設定可能
  35. 35. CodeView 上で LogicFlow を直接記載 デザイナーでは未サポート 動作自体は問題なく可能 マルチトリガ / Multi Trigger
  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. Functions の書き方 最初の関数のみ @ をつける必要がある 文字列は ‘ でのみ囲める デザイナー上で記載する場合は「詳細設定」 LogicApps なら CodeView で記載するのを活用
  39. 39. Azure Function App LogicFlow デザイナー上で 直接 FunctionApp を記述可能 (ただし js のみ)
  40. 40. Hybrid Connection (ServiceBus – Relay) OnPremiss Data Gateway (ServiceBus – Queue) OnPremiss DataGateway 対象コネクタ DataGateway はメッセージを ポーリングする方式でやり取りを行う (リアルタイム性は若干落ちる)
  41. 41. •ルートフォルダ:接続先 PC でのローカルパス (共有はかけなくても大丈夫) •認証タイプ:Windows 認証 •ユーザー名:(マシン名)¥(アカウント) を入力 AD アカウントではないので注意! •パスワード:パスワードを入力 •ゲートウェイ:インストールしたゲートウェイを選択
  42. 42. DataGateway 利用ポート TCP 443 (既定値) / 5671 / 5672 / 9350 ~ 9354 データ送信のみで受信は必要ない HTTPS を強要する場合は config ファイルの書き換えかインストーラから設定
  43. 43. _, ._ (;゚ Д゚) …!?
  44. 44. Enterprise Integration 統合アカウント ファイルからのエンコード ファイルへのデコード XML の検証 XML 変換 EDIFACT AS2 X12 特定プロトコルの コネクタは用意済 Visual Studio に EIP 拡張機能をインストール VS 上でスキーマやマップの定義を行い Azure へアップロードが必要
  45. 45. BizTalk Server ArchitectureBizTalk Server Architecture BizTalk Service Architecture BizTalk の「オーケストレーション」部分を Enterprise Integration Pack として提供
  46. 46. LogicApps ブレード上の設定項目 基本情報や アカウントへの権限付与 デザイナーやコード表示 バージョン履歴に LogicApps で利用してい る接続管理 EIP やアクセス制御 テンプレート化 動作している LogicApps の監視設定
  47. 47. 実行履歴 / History コネクタによっては BASE64 し 結果をやり取りするものもある
  48. 48. バージョン履歴 / Version 編集履歴より 過去のバージョンへ 戻すことが可能 履歴表示時に 「昇格」 で復元される
  49. 49. テンプレート生成 / Template Template 化することで Github などからの デプロイも可能
  50. 50. 新規作成時のデフォルト値を 定義したテンプレートも作成可能
  51. 51. Azure Alert の LogicApps 呼出し Azure の各種サービスでAlert が発生した際に 実行する LogicApps を指定できる Alert ルールはメトリックとして定義可能 Flow で定義した LogicFlow を呼出したい際は Webhook として Request コネクタで 生成された URL を指定することで可能 (ブレード上 LogicApps 呼出がない際も同様) 発生した Alert の集約も非常に簡単に行える
  52. 52. LogicApps のセキュリティ LogicFlow にアクセスできる IP アドレスの制限を指定可能
  53. 53. Flow のセキュリティ 複数の環境を作成して ユーザーを切り分ける 接続可能なコネクタルールを定義し 不用意にデータ流出を行えなくする
  54. 54. Log Analytics 細かい設定なしで LogicApps のログ情報を OMS へと連携が可能
  55. 55. ボタン / Button Flow モバイルアプリ導入で利用可能 端末 / Web サイトより実行可能 作成したボタントリガはメニュー上に ウィジェットとして配置することが可能
  56. 56. bttn flic
  57. 57. 通知 / Notification Flow モバイルアプリ導入で利用可能 自分の端末へのプッシュ通知 / メールによる通知 PowerApps で利用可能(ブラウザ上では未対応) アプリケーション単位での通知(特定ユーザーも可)
  58. 58. Common Data Service(CDS) PowerApps で参照可能(Flow では Premium 必要) CDS の設定などには Plan2 契約が必要 利用頻度の 高そうなものは 全て定義済み テーブル定義を 考えずに DB を 利用できる
  59. 59. PowerApps では 選択可能な CDS Flow では 選択できない事も
  60. 60. 承認 / Approval Flow Premium(または Office365 FreePlan) で可能 活用するには Office365 ユーザーが必要 Flow モバイルアプリ または Flow ウェブサイト上で承認行為が可能
  61. 61. Flow モバイルアプリ Flow ボタンはこのアプリより利用可能
  62. 62. Flow Button Trigger ボタンクリックにて LogicFlow が発動
  63. 63. PowerApps モバイルアプリ 作成したアプリはメニュー上に ウィジェットとして配置可能
  64. 64. PowerApps Studio ブラウザ上または UWPアプリ
  65. 65. PowerApps アプリの作成 PowerApps Studio 上ではインテリセンスなどが 用意されているので基本的には選択していくだけで 設定が可能 カメラやバーコードスキャナー 画像動画表示など一通りのコントロールを提供
  66. 66. PowerApps アプリの作成 OneDrive 上の Excel ファイルへ データ登録や参照するアプリなら テンプレートのままでも十分な機能 テンプレートから作成または スクラッチで作成
  67. 67. LogicApps の高可用性対応 API Management リダイレクト先の調整 ServiceBus メッセージング形式の構築 Hot-Cold 的に構築 動作中のリージョンで障害発生時に COLD 側へ切り替えさせる 常に全てのリージョンで動作するよう構築 LogicApps の課金としては変化なし (トリガで対象データなしは無課金)
  68. 68. PowerApps/Flow が向いている領域 • ネイティブアプリを作るまでもないちょっとした事のシステム化 • 日頃の作業を少しだけ便利に • 一部メンバー間に限定して実施したい • 社内用、部門用システムを短期間で用意したい • スマートフォンを安価に活用したい LogicApps が向いている領域 • 複数サービス間での連携が必要 • EOS/EDI などデータ連携や変換が多くなる時に • コードを書いて負債を増やしたくない • コードを書かなくてもできる事でコードを書きたくない
  69. 69. Let’s develop without coding, and Welcome to Serverless !
  70. 70. 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

×