logicflow 概要

87
LogicFlow Overview 2017/11/18 LogicFlow-ja 小尾 智之

Upload: tomoyuki-obi

Post on 21-Jan-2018

259 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: LogicFlow 概要

LogicFlow Overview

2017/11/18

LogicFlow-ja 小尾智之

Page 2: LogicFlow 概要

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 ~)

Page 3: LogicFlow 概要

https://www.facebook.com/groups/logicflowja/

Page 4: LogicFlow 概要

Agenda

・LogicApps/Flow 概要

Page 5: LogicFlow 概要

Session Goal

• LogicFlow が適している場面を理解する

• LogicFlow でできることを理解する

Page 6: LogicFlow 概要

LogicFlow is iPaas

Page 7: LogicFlow 概要

iPaasis

Integration Platformas a Service

Page 8: LogicFlow 概要

> ≧

IFTTT は非常に多くのサービスと連携可能間に制御を挟まないシンプル構成

IFTTT / Flow / LogicApps

Flow / LogicApps はユーザーが制御を挟む余地があるサービス数はまだ限られている

一般ユーザー ITPro

Page 9: LogicFlow 概要

Trigger

Action

Action

LogicFlow の構造

発生したイベントをトリガで受け取り後続のアクションで処理を行う

Page 10: LogicFlow 概要

Price Plan

Page 11: LogicFlow 概要

LogicApps 従量課金プラン

LogicApps AppService プラン

https://azure.microsoft.com/ja-jp/pricing/details/logic-apps/

Flow とは課金単位が異なる

Page 12: LogicFlow 概要

1 Action

1 Action

1 Action

1 Flow

LogicApps の課金単位

Flow の課金単位

Page 13: LogicFlow 概要

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

Page 14: LogicFlow 概要

Microsoft Flow 料金プラン

1 ユーザー 25 LogicFlow が定義可能(リクエスト送付で拡張可能)https://flow.microsoft.com/ja-jp/pricing/

Page 15: LogicFlow 概要

Flow プランでの機能制限

Premium 系コネクタはPlan1 / 2 でのみ利用可能

Page 16: LogicFlow 概要

PowerApps 料金プラン

Page 17: LogicFlow 概要

https://powerapps.microsoft.com/ja-jp/communityplan/

PowerApps コミュニティプラン

既にアカウントを所有していても作成可能

Page 18: LogicFlow 概要

Service Connectors

Page 19: LogicFlow 概要
Page 20: LogicFlow 概要

Enterprise

Integration

SNS

Office365 / Dynamics365

Data Connect

Web Service

Azure Service

Online Storage

Notification Standard

Connecter

Cognitive Service

Button

Approval

Batch

Page 21: LogicFlow 概要

Enterprise

Integration

SNS

Office365 / Dynamics365

Data Connect

Web Service

Azure Service

Online Storage

Notification Standard

Connecter

Cognitive Service

Button

Approval

Batch

LogicApps Only

Page 22: LogicFlow 概要

Enterprise

Integration

SNS

Office365 / Dynamics365

Data Connect

Web Service

Azure Service

Online Storage

Notification Standard

Connecter

Cognitive Service

Button

Approval

Batch

Flow Only

Page 23: LogicFlow 概要

Connector Detail

Page 24: LogicFlow 概要

LogicFlow 基本コネクタ

スケジュール

OpenAPI(Swagger) 定義されたAPI 呼出

HTTPS リクエスト

RSSFTP/SFTP

HTTP/HTTPS

WebHook

Mail(SendGrid)

SMTP

変数

制御HTTP レスポンス

データ操作

PowerApps

プッシュ通知

Flow Button

HTML-テキスト変換

PowerApps用プッシュ通知

Page 25: LogicFlow 概要

条件判断 / Condition

IF ~ THEN ~ ELSE(条件分岐)

Switch Case(条件多分岐)

Page 26: LogicFlow 概要

繰り返し / Loop

Do Until ループ

ループが一定時間内に終了しない場合にタイムアウトとする場合はISO 8601 形式でタイムアウト条件を設定

Page 27: LogicFlow 概要

繰り返し / Loop

ForEach ループ

規定では 20 アクションの並列動作operationOptions:Sequential で変更可能

デザイナ上だけでネストしたループも作成可能

Page 28: LogicFlow 概要

並列動作アクション数はデザイナー上からも調整可能

Page 29: LogicFlow 概要

ブロック化 / Scope

処理のブロック化

Page 30: LogicFlow 概要

実行条件の構成 / RunAfter

ブロック化した場合は「ブロック内部の処理が何か一つでも失敗したら」という条件で利用できる

Page 31: LogicFlow 概要

並列分岐 / RunAfter(2)

デザイナー上から並列動作させるアクションを直接設定可能

RunAfter 設定を変更しどのコネクタの後に実行するかを設定している

Page 32: LogicFlow 概要

IF コネクタでエラー判定しなくともこのような形でエラー処理が作成できる

Page 33: LogicFlow 概要

ドラッグ&ドロップで移動可能

Page 34: LogicFlow 概要

変数/ Variables

初期化を先に実施する必要がある

Page 35: LogicFlow 概要

変数の初期化はループ内部では利用不可

Page 36: LogicFlow 概要

データ操作 / Compose

関数で行っていたものがコネクタ化され簡易に利用可能

Page 37: LogicFlow 概要

inputArguments.Select(Function(x)

Return New With {Key x.orgArg1,

Key x.orgArg2,

Key Sum(x.orgArg3)}

End Function).ToArray

選択/ Selecct

配列オブジェクトの再定義

Page 38: LogicFlow 概要

バッチ / Batch

一定回数呼び出される定期的に実行する一定量のメッセージを受け取るなどをトリガにして起動できる

Page 39: LogicFlow 概要

再試行ポリシー/ Retry Policy

動作エラーになったものを何回(Limit)どの程度の間隔で(Duration)再実行するかを設定

Page 40: LogicFlow 概要

HTTP コネクタの仕様と制限

Request

Response

HTTP ステータス 200 が正常終了202 は処理継続中として Retry-After 値に基づいてポーリング

Location ヘッダの値がある場合再試行時にリクエストを投げる URL が変化

ワークフローが開始されるのはステータス 200 の時に限定される

http://blogahf.blogspot.jp/2017/07/logicflow-http.html

Page 41: LogicFlow 概要

Trigger

Page 42: LogicFlow 概要

CodeView 上で LogicFlow を直接記載

デザイナーでは未サポート

動作自体は問題なく可能

マルチトリガ / Multi Trigger

Page 43: LogicFlow 概要

@triggerOutputs() 関数にて呼出時に付与されていたクエリパラメータを取得できる

Request トリガにおけるクエリパラメータ

@triggerOutputs()['queries']['test1']などでパラメータを利用可能

Page 44: LogicFlow 概要

Workflow Function

Page 45: LogicFlow 概要

演算子 / Operator

[]

?演算子は特に重要で値がない事が想定される場合は必ず使うのがよい

Page 46: LogicFlow 概要

関数 / 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

Page 47: LogicFlow 概要

Functions の書き方

最初の関数のみ@をつける必要がある(CodeView のみ)

文字列は ‘ でのみ囲める

デザイナー上で記載する場合は「詳細設定」LogicApps なら CodeView で記載するのを活用

Page 48: LogicFlow 概要

Workflow Functions のコネクタ対応

一部関数はコネクタとして提供も行っている

Page 49: LogicFlow 概要

Azure API App

同一サブスクリプション上にある API Apps を呼出可能

トリガ/アクション両方を利用可能

Page 50: LogicFlow 概要

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/

Page 51: LogicFlow 概要

Azure Function App

LogicFlow デザイナー上で直接 FunctionApp を記述可能(ただし js のみ)

Page 52: LogicFlow 概要

Custom Connector

Page 53: LogicFlow 概要

外部 API を事前に登録することで他コネクタと同様に利用させることが可能

アイコンや説明文なども設定できるので詳しくない人でも利用できるようになる

Page 54: LogicFlow 概要

カスタムコネクタ登録

Page 55: LogicFlow 概要

カスタムコネクタ登録により他のコネクタと比較しても判別つかない形でコネクタを提供することが可能

利用する側にとっては詳細な設定を毎回行う必要がないので利便性が高い

Page 56: LogicFlow 概要

OnPremiss Data Gateway

Page 57: LogicFlow 概要

Hybrid Connection

(ServiceBus – Relay)

OnPremiss Data Gateway

(ServiceBus – Queue)

OnPremiss DataGateway

対象コネクタ

DataGateway はメッセージをポーリングする方式でやり取りを行う(リアルタイム性は若干落ちる)

Page 58: LogicFlow 概要

•ルートフォルダ:接続先 PC でのローカルパス(共有はかけなくても大丈夫)•認証タイプ:Windows 認証•ユーザー名:(マシン名)¥(アカウント) を入力AD アカウントではないので注意!•パスワード:パスワードを入力•ゲートウェイ:インストールしたゲートウェイを選択

Page 59: LogicFlow 概要

DataGateway 利用ポート

TCP 443 (既定値) / 5671 / 5672 / 9350 ~ 9354

データ送信のみで受信は必要ない

HTTPS を強要する場合は config ファイルの書き換えかインストーラから設定

Page 60: LogicFlow 概要

Enterprise Integration

Page 61: LogicFlow 概要

Enterprise Integration

統合アカウント

ファイルからのエンコード

ファイルへのデコード

XML の検証 XML 変換

EDIFACT

AS2

X12特定プロトコルのコネクタは用意済

VS 上でスキーマやマップの定義を行いAzure へアップロードが必要(現時点では VS2015 限定)

Page 62: LogicFlow 概要

BizTalk Server Architecture

BizTalk Service Architecture

オーケストレーション部分が

Enterprise Integration Pack

Page 63: LogicFlow 概要

統合アカウントB2B などで EDI/EOS をする際の情報を登録

マップは xslt とLiquid Template に対応

Page 64: LogicFlow 概要

LogicFlow Configration

Page 65: LogicFlow 概要

実行履歴 / History

コネクタによっては BASE64 し結果をやり取りするものもある

Page 66: LogicFlow 概要

バージョン履歴 / Version

編集履歴より過去のバージョンへ戻すことが可能

履歴表示時に「昇格」で復元される

Page 67: LogicFlow 概要

テンプレート生成 / Template

Template 化することでGithub などからのデプロイも可能

Page 68: LogicFlow 概要

新規作成時のデフォルト値を定義したテンプレートも作成可能

Page 69: LogicFlow 概要

Azure Alert の LogicApps 呼出し

Azure の各種サービスでAlert が発生した際に実行する LogicApps を指定できる

Alert ルールはメトリックとして定義可能

Flow で定義した LogicFlow を呼出したい際はWebhook として Request コネクタで生成された URL を指定することで可能(ブレード上 LogicApps 呼出がない際も同様)

発生した Alert の集約も非常に簡単に行える

Page 70: LogicFlow 概要

LogicApps の呼び出し元 IP アドレス

LogicAppsからアクセスした場合の IP アドレス

Page 71: LogicFlow 概要

LogicApps のセキュリティ

LogicFlow にアクセスできるIP アドレスの制限を指定可能

Page 72: LogicFlow 概要

Flow のセキュリティ

複数の環境を作成してユーザーを切り分ける

接続可能なコネクタルールを定義し不用意にデータ流出を行えなくする

Page 73: LogicFlow 概要

Log Analytics

細かい設定なしでLogicApps のログ情報をOMS へと連携が可能

Page 74: LogicFlow 概要

Flow/PowerAppsLimited

Page 75: LogicFlow 概要

ボタン / Button

Flow モバイルアプリ導入で利用可能端末 / Web サイトより実行可能

作成したボタントリガはメニュー上にウィジェットとして配置することが可能

Page 76: LogicFlow 概要

通知 / Notification

Flow モバイルアプリ導入で利用可能自分の端末へのプッシュ通知 / メールによる通知

PowerApps で利用可能(ブラウザ上では未対応)アプリケーション単位での通知(特定ユーザーも可)

PowerApps Notification

Notification

Page 77: LogicFlow 概要

承認 / Approval

Flow Premium(または Office365 FreePlan)で可能活用するには Office365 ユーザーが必要

Flow モバイルアプリまたは Flow ウェブサイト上で承認行為が可能

Page 78: LogicFlow 概要

Functions App Proxy

Page 79: LogicFlow 概要

Function Apps Proxy と API Management Services

どちらも LogicFlow を呼び出すプロキシとして利用可能

Page 80: LogicFlow 概要

特定のメソッドで呼び出された際にAPI を呼び出すことが可能

Function Apps Proxy

Page 81: LogicFlow 概要

Other Contents

Page 82: LogicFlow 概要

LogicApps の高可用性対応

API Management リダイレクト先の調整

ServiceBus メッセージング

Hot-Cold 的に構築動作中のリージョンで障害発生時にCOLD 側へ切り替えさせる

常に全てのリージョンで動作するよう構築LogicApps の課金としては変化なし(トリガで対象データなしは無課金)

Page 83: LogicFlow 概要

LogicApps Orchestration

Functions App でチェーン的につなぎ処理を構築するよりもLogicApps から Functions App を呼び出させる方が、処理が正常に動作しているかも把握しやすく修正しやすい

高レスポンスを求めないならば

Functions をチェーンしない方が良い

Page 84: LogicFlow 概要

LogicApps Ludicrous Mode

LogicApps 上に仕込みは済んでいるのでそう遠くない時期に公開予定

高パフォーマンス用 LogicApps

16ユニット以上の構成

高スケール対応が可能

Page 85: LogicFlow 概要

PowerApps/Flow が向いている領域

• アプリを作るまでもないちょっとした事のシステム化• 日頃の作業を少しだけ便利に• 一部メンバー間に限定して実施したい• 社内用、部門用システムを短期間で用意したい• スマートフォンを安価に活用したい

LogicApps が向いている領域

• 複数サービス間での連携が必要• EOS/EDI などデータ連携や変換が多くなる時に• コードを書いて負債を増やしたくない• コードを書かなくてもできる事でコードを書きたくない

Page 86: LogicFlow 概要

Let’s develop without coding,

and Welcome to Serverless !

Page 87: LogicFlow 概要

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