1st step logicflow

70
The 1st Step LogicFlow 2017/06/24 小尾 智之

Upload: tomoyuki-obi

Post on 21-Jan-2018

1.014 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 1st step LogicFlow

The 1st Step LogicFlow

2017/06/24

小尾智之

Page 2: 1st step LogicFlow

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

Page 3: 1st step LogicFlow

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

Page 4: 1st step LogicFlow

Agenda

• LogicApps/Flow/PowerApps とは

– LogicFlow 基本機能

– LogicApps と Flow の違い

– HybridConnection と OnPremiss DataGateway

– Enterprise Integration Pack

• LogicFlow の各機能

• Flow/PowerApps モバイルアプリ

Page 5: 1st step LogicFlow

LogicFlow is iPaas

Page 6: 1st step LogicFlow

iPaas = Integration Platform as a Service

Page 7: 1st step LogicFlow

> ≧

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

IFTTT / Flow / LogicApps

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

一般ユーザー ITPro

Page 8: 1st step LogicFlow

トリガ

アクション

LogicFlow の基本形

イベントをトリガで受け取り後続のアクションで処理を行うサーバーレスなもの

Page 9: 1st step LogicFlow

Ver 2014-12-01

Page 10: 1st step LogicFlow

Ver 2015-08-01

Page 11: 1st step LogicFlow

Ver 2016-06-01

Page 12: 1st step LogicFlow

LogicApps はそろそろ GA 1 周年

アイコンも新しくなって1年弱

Page 13: 1st step LogicFlow

LogicApps 従量課金プラン

LogicApps AppService プラン

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

Flow とは課金単位が異なる

Page 14: 1st step LogicFlow

LogicApps プランの切り替え

Param([string] $AppService_RG = {AppService の ResourceGropu 名},[string] $AppService_Name = {AppService の名前},[string] $LogicApp_RG = {LogicApps の ResourceGroup 名},[string] $LogicApp_Name = {LogicApps の名前},[string] $subscriptionId = {サブスクリプションのID}

)

Login-AzureRmAccountSet-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-AzureRmAccountSet-AzureRmContext -SubscriptionID {SubscriptionID}Set-AzureRmLogicApp -ResourceGroupName {ResourceGroupName} -Name {LogicFlowName}-AppServicePlan {PlanName}

要 EA 契約(または GA 前の LogicApps)

Ptn 1: Ptn 2:

Page 15: 1st step LogicFlow

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

Page 16: 1st step LogicFlow

Microsoft Flow 料金プラン

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

Page 17: 1st step LogicFlow

Flow プランでの機能制限

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

Page 18: 1st step LogicFlow

PowerApps 料金プラン

Page 19: 1st step LogicFlow

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

PowerApps コミュニティプラン

Page 20: 1st step LogicFlow

Enterprise Integration

SNS

Office365 / Dynamics365

Data Connect

Web Service

Azure Service

Online Storage

Notification

Standard Connecter

Cognitive Service

Button

Approval

Page 21: 1st step LogicFlow

Enterprise Integration

SNS

Office365 / Dynamics365

Data Connect

Web Service

Azure Service

Online Storage

Notification

Standard Connecter

Cognitive Service

Button

Approval

LogicApps Only

Page 22: 1st step LogicFlow

Enterprise Integration

SNS

Office365 / Dynamics365

Data Connect

Web Service

Azure Service

Online Storage

Notification

Standard Connecter

Cognitive Service

Button

Approval

Flow Only

Page 23: 1st step LogicFlow

LogicFlow 基本コネクタ

スケジュール

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

HTTPS リクエスト

RSSFTP/SFTP

HTTP/HTTPS

WebHook

Mail(SendGrid)

SMTP

変数

制御HTTP レスポンス

データ操作

PowerApps

プッシュ通知

Flow Button

HTML-テキスト変換

PowerApps用プッシュ通知

Page 24: 1st step LogicFlow

条件判断 / Condition

IF ~ THEN ~ ELSE(条件分岐)

Switch Case(条件多分岐)

Page 25: 1st step LogicFlow

繰り返し / Loop

Do Until ループ

ForEach ループ

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

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

Page 26: 1st step LogicFlow

ブロック化 / Scope

処理のブロック化

Page 27: 1st step LogicFlow

実行条件の構成 / RunAfter

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

Page 28: 1st step LogicFlow

並列分岐 / RunAfter(2)

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

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

Page 29: 1st step LogicFlow

変数/ Variables

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

Page 30: 1st step LogicFlow

データ操作 / Compose

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

Page 31: 1st step LogicFlow

inputArguments.Select(Function(x)

Return New With {Key x.orgArg1,

Key x.orgArg2,

Key Sum(x.orgArg3)}

End Function).ToArray

選択/ Selecct

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

Page 32: 1st step LogicFlow

inputArguments.Select(x => new {x.orgArg1,

x.orgArg2,

Sum(x.orgArg3)}).ToArray()

選択/ Selecct

Page 33: 1st step LogicFlow

再試行ポリシー/ Retry Policy

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

Page 34: 1st step LogicFlow

HTTP コネクタの仕様と制限

Request

Response

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

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

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

再試行ポリシーは HTTP コネクタに設定可能

Page 35: 1st step LogicFlow

CodeView 上で LogicFlow を直接記載

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

動作自体は問題なく可能

マルチトリガ / Multi Trigger

Page 36: 1st step LogicFlow

演算子 / Operator

[]

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

Page 37: 1st step LogicFlow

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

Page 38: 1st step LogicFlow

Functions の書き方

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

文字列は ‘ でのみ囲める

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

Page 39: 1st step LogicFlow

Azure Function App

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

Page 40: 1st step LogicFlow

Hybrid Connection

(ServiceBus – Relay)

OnPremiss Data Gateway

(ServiceBus – Queue)

OnPremiss DataGateway

対象コネクタ

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

Page 41: 1st step LogicFlow

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

Page 42: 1st step LogicFlow

DataGateway 利用ポート

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

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

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

Page 43: 1st step LogicFlow

_, ._

(;゚ Д゚) …!?

Page 44: 1st step LogicFlow

Enterprise Integration

統合アカウント

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

ファイルへのデコード

XML の検証 XML 変換

EDIFACT

AS2

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

Visual Studio に EIP 拡張機能をインストールVS 上でスキーマやマップの定義を行いAzure へアップロードが必要

Page 45: 1st step LogicFlow

BizTalk Server ArchitectureBizTalk Server Architecture

BizTalk Service Architecture

BizTalk の「オーケストレーション」部分をEnterprise Integration Pack として提供

Page 46: 1st step LogicFlow

LogicApps ブレード上の設定項目

基本情報やアカウントへの権限付与

デザイナーやコード表示バージョン履歴にLogicApps で利用している接続管理

EIP やアクセス制御テンプレート化

動作している LogicApps

の監視設定

Page 47: 1st step LogicFlow

実行履歴 / History

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

Page 48: 1st step LogicFlow

バージョン履歴 / Version

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

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

Page 49: 1st step LogicFlow

テンプレート生成 / Template

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

Page 50: 1st step LogicFlow

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

Page 51: 1st step LogicFlow

Azure Alert の LogicApps 呼出し

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

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

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

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

Page 52: 1st step LogicFlow

LogicApps のセキュリティ

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

Page 53: 1st step LogicFlow

Flow のセキュリティ

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

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

Page 54: 1st step LogicFlow

Log Analytics

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

Page 55: 1st step LogicFlow

ボタン / Button

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

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

Page 56: 1st step LogicFlow

bttn

flic

Page 57: 1st step LogicFlow

通知 / Notification

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

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

Page 58: 1st step LogicFlow

Common Data Service(CDS)

PowerApps で参照可能(Flow では Premium 必要)CDS の設定などには Plan2 契約が必要

利用頻度の高そうなものは全て定義済み

テーブル定義を考えずに DB を利用できる

Page 59: 1st step LogicFlow

PowerApps では選択可能な CDS

Flow では選択できない事も

Page 60: 1st step LogicFlow

承認 / Approval

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

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

Page 61: 1st step LogicFlow

Flow モバイルアプリ

Flow ボタンはこのアプリより利用可能

Page 62: 1st step LogicFlow

Flow Button Trigger

ボタンクリックにて LogicFlow が発動

Page 63: 1st step LogicFlow

PowerApps モバイルアプリ

作成したアプリはメニュー上にウィジェットとして配置可能

Page 64: 1st step LogicFlow

PowerApps Studio

ブラウザ上またはUWPアプリ

Page 65: 1st step LogicFlow

PowerApps アプリの作成

PowerApps Studio 上ではインテリセンスなどが用意されているので基本的には選択していくだけで設定が可能

カメラやバーコードスキャナー画像動画表示など一通りのコントロールを提供

Page 66: 1st step LogicFlow

PowerApps アプリの作成

OneDrive 上の Excel ファイルへデータ登録や参照するアプリならテンプレートのままでも十分な機能

テンプレートから作成またはスクラッチで作成

Page 67: 1st step LogicFlow

LogicApps の高可用性対応

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

ServiceBus メッセージング形式の構築

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

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

Page 68: 1st step LogicFlow

PowerApps/Flow が向いている領域

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

LogicApps が向いている領域

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

Page 69: 1st step LogicFlow

Let’s develop without coding,

and Welcome to Serverless !

Page 70: 1st step 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