1st step logicflow

Post on 21-Jan-2018

1.014 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

The 1st Step LogicFlow

2017/06/24

小尾智之

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

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

Agenda

• LogicApps/Flow/PowerApps とは

– LogicFlow 基本機能

– LogicApps と Flow の違い

– HybridConnection と OnPremiss DataGateway

– Enterprise Integration Pack

• LogicFlow の各機能

• Flow/PowerApps モバイルアプリ

LogicFlow is iPaas

iPaas = Integration Platform as a Service

> ≧

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

IFTTT / Flow / LogicApps

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

一般ユーザー ITPro

トリガ

アクション

LogicFlow の基本形

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

Ver 2014-12-01

Ver 2015-08-01

Ver 2016-06-01

LogicApps はそろそろ GA 1 周年

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

LogicApps 従量課金プラン

LogicApps AppService プラン

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

Flow とは課金単位が異なる

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:

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

Microsoft Flow 料金プラン

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

Flow プランでの機能制限

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

PowerApps 料金プラン

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

PowerApps コミュニティプラン

Enterprise Integration

SNS

Office365 / Dynamics365

Data Connect

Web Service

Azure Service

Online Storage

Notification

Standard Connecter

Cognitive Service

Button

Approval

Enterprise Integration

SNS

Office365 / Dynamics365

Data Connect

Web Service

Azure Service

Online Storage

Notification

Standard Connecter

Cognitive Service

Button

Approval

LogicApps Only

Enterprise Integration

SNS

Office365 / Dynamics365

Data Connect

Web Service

Azure Service

Online Storage

Notification

Standard Connecter

Cognitive Service

Button

Approval

Flow Only

LogicFlow 基本コネクタ

スケジュール

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

HTTPS リクエスト

RSSFTP/SFTP

HTTP/HTTPS

WebHook

Mail(SendGrid)

SMTP

変数

制御HTTP レスポンス

データ操作

PowerApps

プッシュ通知

Flow Button

HTML-テキスト変換

PowerApps用プッシュ通知

条件判断 / Condition

IF ~ THEN ~ ELSE(条件分岐)

Switch Case(条件多分岐)

繰り返し / Loop

Do Until ループ

ForEach ループ

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

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

ブロック化 / Scope

処理のブロック化

実行条件の構成 / RunAfter

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

並列分岐 / RunAfter(2)

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

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

変数/ Variables

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

データ操作 / Compose

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

inputArguments.Select(Function(x)

Return New With {Key x.orgArg1,

Key x.orgArg2,

Key Sum(x.orgArg3)}

End Function).ToArray

選択/ Selecct

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

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

x.orgArg2,

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

選択/ Selecct

再試行ポリシー/ Retry Policy

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

HTTP コネクタの仕様と制限

Request

Response

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

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

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

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

CodeView 上で LogicFlow を直接記載

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

動作自体は問題なく可能

マルチトリガ / Multi Trigger

演算子 / Operator

[]

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

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

Functions の書き方

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

文字列は ‘ でのみ囲める

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

Azure Function App

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

Hybrid Connection

(ServiceBus – Relay)

OnPremiss Data Gateway

(ServiceBus – Queue)

OnPremiss DataGateway

対象コネクタ

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

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

DataGateway 利用ポート

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

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

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

_, ._

(;゚ Д゚) …!?

Enterprise Integration

統合アカウント

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

ファイルへのデコード

XML の検証 XML 変換

EDIFACT

AS2

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

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

BizTalk Server ArchitectureBizTalk Server Architecture

BizTalk Service Architecture

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

LogicApps ブレード上の設定項目

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

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

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

動作している LogicApps

の監視設定

実行履歴 / History

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

バージョン履歴 / Version

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

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

テンプレート生成 / Template

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

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

Azure Alert の LogicApps 呼出し

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

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

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

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

LogicApps のセキュリティ

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

Flow のセキュリティ

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

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

Log Analytics

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

ボタン / Button

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

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

bttn

flic

通知 / Notification

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

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

Common Data Service(CDS)

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

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

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

PowerApps では選択可能な CDS

Flow では選択できない事も

承認 / Approval

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

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

Flow モバイルアプリ

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

Flow Button Trigger

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

PowerApps モバイルアプリ

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

PowerApps Studio

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

PowerApps アプリの作成

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

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

PowerApps アプリの作成

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

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

LogicApps の高可用性対応

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

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

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

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

PowerApps/Flow が向いている領域

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

LogicApps が向いている領域

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

Let’s develop without coding,

and Welcome to Serverless !

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

top related