Contenu connexe Similaire à 20180421 environment managewithlogicflow (20) Plus de Tomoyuki Obi (19) 20180421 environment managewithlogicflow2. 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 ~)
5. • Logic Apps 概要
• Logic Apps で行う環境管理
– Azure Monitor
– EventGrid
Agenda
8. Logic Apps とは
• コネクタを利用して複数システムを連携
– コネクタは用意されたものだけでなく自作も可能
• デザイナー上での操作でほぼ完結するローコード開発
• オンプレミス環境を交えても利用可能
10. Logic Apps/Flow 仕様と制限
最大実行継続時間 90 日
ストレージリテンション期間 90 日
最小繰り返し時間 1 秒
最大繰り返し間隔 500 日
ForEach レコード数 100,000
Loop Until 回数 5,000
SplitOn 最大数 100,000
ForEach 並列処理数 20
アクション実行数(5分間) 100K / 300K
同時呼出し数 2,500
エンドポイント同時受信数 1,000
エンドポイント読み取り可能呼出し数 60,000
エンドポイント起動可能呼出し数 45,000
ワークフローでのアクション数 250
ワークフロー内部でのネスト数 5
1リージョンでのワークフロー数 1,000
ワークフローごとのトリガ数 10
一つの式での最大文字数 8,192
アクション/トリガ名の文字数 80
コメントの文字数 256
パラメーター数 50
高スループットモード登場
16. Hybrid Connection
(ServiceBus – Relay)
OnPremiss Data Gateway
(ServiceBus – Queue)
OnPremiss DataGateway
対象コネクタ
DataGateway はメッセージを
ポーリングする方式でやり取りを行う
(リアルタイム性は若干落ちる)
要 Office365/Flow Premium ライセンス
22. LogicFlow で AD へユーザー登録する流れ
1.登録済みか取得する
2.未登録であればユーザーを追加する
未登録の場合はユーザー取得で
エラーとなるので続く追加アクションの
実行条件を「エラー時」とすることで
処理の結果確認の判断ロジックが不要になる
コネクタによってエラーとなる/ならない
の挙動は異なるので注意
25. Azure Automation を LogicFlow で利用
Logic Apps/Flow で利用可能なコネクタ
登録しているスクリプトや Runbook を
実行、結果の取得が行える
29. Azure Monitor とは
• Microsoft Azure の基本レベルな監視サービス
– 全サービスが対応・・・・・・とはいけてない(継続して対応中)
• Azure Monitor から別サービスへ連携ができる
• メトリックとアクティビティログが基本
– アクティビティログにアラートを設定
• 設定変更の監視等
– メトリックにアラートを設定
• 動作状況の監視や、成功/失敗の監視等
41. {
"schemaId": "AzureMonitorMetricAlert",
"data": {
"version": "2.0",
"status": "Activated",
"context": {
"timestamp": "2018-04-18T02:42:36.1212228Z",
"id": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy/resourceGroups/Res20180421/providers/microsoft.insights/metricAlerts/ExecuteLoopTestFlow",
"name": "ExecuteLoopTestFlow",
"description": "",
"conditionType": "SingleResourceMultipleMetricCriteria",
"condition": {
"windowSize": "PT5M",
"allOf": [
{
"metricName": "RunsSucceeded",
"dimensions": [
{
"name": "ResourceId",
"value": "/SUBSCRIPTIONS/XXXXXXXX-D573-4C1D-AA3F-YYYYYYYYYYYY/RESOURCEGROUPS/RES20180421/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/LOOPTEST"
}
],
"operator": "GreaterThanOrEqual",
"threshold": "1",
"timeAggregation": "PT5M",
"metricValue": 0
}
]
},
"subscriptionId": "xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy",
"resourceGroupName": "Res20180421",
"resourceName": "LoopTest",
"resourceType": "Microsoft.Logic/workflows",
"resourceId": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/LoopTest",
"portalLink": "https://portal.azure.com/#resource//subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/LoopTest"
},
"properties": {}
}
}
LogicApp で受け取った Alert のサンプル
42. {
"schemaId": "AzureMonitorMetricAlert",
"data": {
"version": "2.0",
"status": "Activated",
"context": {
"timestamp": "2018-04-18T02:42:36.1212228Z",
"id": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy/resourceGroups/Res20180421/providers/microsoft.insights/metricAlerts/ExecuteLoopTestFlow",
"name": "ExecuteLoopTestFlow",
"description": "",
"conditionType": "SingleResourceMultipleMetricCriteria",
"condition": {
"windowSize": "PT5M",
"allOf": [
{
"metricName": "RunsSucceeded",
"dimensions": [
{
"name": "ResourceId",
"value": "/SUBSCRIPTIONS/XXXXXXXX-D573-4C1D-AA3F-YYYYYYYYYYYY/RESOURCEGROUPS/RES20180421/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/LOOPTEST"
}
],
"operator": "GreaterThanOrEqual",
"threshold": "1",
"timeAggregation": "PT5M",
"metricValue": 0
}
]
},
"subscriptionId": "xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy",
"resourceGroupName": "Res20180421",
"resourceName": "LoopTest",
"resourceType": "Microsoft.Logic/workflows",
"resourceId": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/LoopTest",
"portalLink": "https://portal.azure.com/#resource//subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/LoopTest"
},
"properties": {}
}
}
Alert の状況
Alert の条件
50. EventGrid のトリガは 2 種類
「要求」に含まれている
EventGrid トリガ
(LogicApps のみ)
WebHook 用 URL が
生成されるだけなので
Subscription 等は設定必要
53. Azure Subscription や Azure Resource Group の
変更検知は EventGrid Subscription の設定で可能
内部的には HTTP Request コネクタが生成した
URL を EventGrid Subscription の WebHook 先に
設定している
55. EventGrid コネクタは
• Azure Subsription
• Azure Resource Groups
• EventGrid Topics
• Eventhub Namespaces
• IoTHubs
• Storage Accounts
• Azure Container Registry
に現時点で対応
通知できるイベント種類
61. {
"subject": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/ReceiveEvent",
"eventType": "Microsoft.Resources.ResourceWriteSuccess",
"eventTime": "2018-04-19T03:56:58.6028791Z",
"id": "47b8f706-1cdd-4025-ab70-2e6099f4d312",
"data": {
"authorization": {
},
"claims": {
},
"correlationId": "47b8f706-1cdd-4025-ab70-2e6099f4d312",
"httpRequest": {
"clientRequestId": "f6b62dfd-b9d7-4307-8f5c-73ba22cff2f1",
"clientIpAddress": "221.112.85.226",
"method": "PUT",
"url": "https://management.azure.com/subscriptions/326a3b11-d573-4c1d-aa3f-
b1f75d57a91c/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/ReceiveEvent?api-version=2016-10-01"
},
"resourceProvider": "Microsoft.Logic",
"resourceUri": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/ReceiveEvent",
"operationName": "Microsoft.Logic/workflows/write",
"status": "Succeeded",
"subscriptionId": "xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy",
"tenantId": “zzzzzzzz-eaa3-44b3-8fb6-wwwwwwwwwwww"
},
"dataVersion": "2",
"metadataVersion": "1",
"topic": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy"
}
イベント情報のサンプル
62. {
"subject": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/ReceiveEvent",
"eventType": "Microsoft.Resources.ResourceWriteSuccess",
"eventTime": "2018-04-19T03:56:58.6028791Z",
"id": "47b8f706-1cdd-4025-ab70-2e6099f4d312",
"data": {
"authorization": {
},
"claims": {
},
"correlationId": "47b8f706-1cdd-4025-ab70-2e6099f4d312",
"httpRequest": {
"clientRequestId": "f6b62dfd-b9d7-4307-8f5c-73ba22cff2f1",
"clientIpAddress": "221.112.85.226",
"method": "PUT",
"url": "https://management.azure.com/subscriptions/326a3b11-d573-4c1d-aa3f-
b1f75d57a91c/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/ReceiveEvent?api-version=2016-10-01"
},
"resourceProvider": "Microsoft.Logic",
"resourceUri": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/ReceiveEvent",
"operationName": "Microsoft.Logic/workflows/write",
"status": "Succeeded",
"subscriptionId": "xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy",
"tenantId": “zzzzzzzz-eaa3-44b3-8fb6-wwwwwwwwwwww"
},
"dataVersion": "2",
"metadataVersion": "1",
"topic": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-yyyyyyyyyyyy"
}
イベント情報のサンプル
発生したイベントと日時
対象のリソース
64. ARM コネクタの Read Resource
アクションで Resource の取得が可能
Managed REST API 利用時と
同様の操作が行える
65. ARM Short Resource ID
基本はリソースID の後方 2 要素
"resourceId": "/subscriptions/xxxxxxxx-d573-4c1d-aa3f-
yyyyyyyyyyyy/resourceGroups/Res20180421/providers/Microsoft.Logic/workflows/LoopTest",
workflows/LoopTest
全てのプロバイダによって同様かは不明・・・・・・
https://blogs.msdn.microsoft.com/premier_developer/2018/03/08/integrating-logic-apps-and-azure-monitor/
68. まとめ
• Logic Apps/Flow は開発者以外で利用がしやすい
– それは本当にコードやスクリプトが必要か
• Azure Monitor/EventGrid で Azure 上に発生するイベント
をほとんど把握できる
– 動作の状況と環境の変遷
– 把握した内容に対しての行動を LogicFlow 化することで
定型的なイベントへの対応を自動化できる
– スクリプトなどの既存資産の流用も行いやすい
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