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.

20180421 environment managewithlogicflow

534 views

Published on

2018/04/21 Global Azure Bootcamp Tokyo で利用したスライド

Published in: Technology
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

20180421 environment managewithlogicflow

  1. 1. Environment Management with LogicFlow 2018/04/21 LogicFlow-ja 小尾 智之
  2. 2. 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 ~)
  3. 3. https://www.facebook.com/groups/logicflowja/
  4. 4. https://www.facebook.com/groups/1625970957450861/
  5. 5. • Logic Apps 概要 • Logic Apps で行う環境管理 – Azure Monitor – EventGrid Agenda
  6. 6. LogicApps/Flow is iPaas Integration Platform as a Service
  7. 7. Overview / Cost
  8. 8. Logic Apps とは • コネクタを利用して複数システムを連携 – コネクタは用意されたものだけでなく自作も可能 • デザイナー上での操作でほぼ完結するローコード開発 • オンプレミス環境を交えても利用可能
  9. 9. Dynamics365 Office365 Microsoft Azure Logic Apps Flow / PowerApps
  10. 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 高スループットモード登場
  11. 11. 1 Action (Trigger) 1 Action 1 Action 1 Flow LogicApps の構成と課金単位 Flow の課金単位
  12. 12. LogicApps の概要部分に アクション数が表示されている ただし課金対象アクションのうち IF や ForEach 等が含まれていない 純粋なアクション数なので注意 課金対象:20 アクション+1 (ForEach)
  13. 13. LogicApps 従量課金プラン https://azure.microsoft.com/ja-jp/pricing/details/logic-apps/ Flow とは課金単位が異なる
  14. 14. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch
  15. 15. Enterprise Integration SNS Office365 / Dynamics365 Data Connect Web Service Azure Service Online Storage Notification Standard Connecter Cognitive Service Button Approval Batch 221 Connectors
  16. 16. Hybrid Connection (ServiceBus – Relay) OnPremiss Data Gateway (ServiceBus – Queue) OnPremiss DataGateway 対象コネクタ DataGateway はメッセージを ポーリングする方式でやり取りを行う (リアルタイム性は若干落ちる) 要 Office365/Flow Premium ライセンス
  17. 17. Enterprise Integration(VS2015) 統合アカウント ファイルからのエンコード ファイルへのデコード XML の検証 XML 変換 EDIFACT AS2 X12 特定プロトコルの コネクタは用意済 Visual Studio に EIP 拡張機能をインストール VS 上でスキーマやマップの定義を行い Azure へアップロードが必要 Liquid での変換
  18. 18. https://trello.com/b/9GhzIReR/azure-logic-apps-product-roadmap
  19. 19. LogicFlow Sample Add User to Azure Active Directory
  20. 20. Logic Apps/Flow で利用可能なコネクタ ユーザー / グループ を参照・操作可能 削除は行えないので「無効化」を利用
  21. 21. AD Account 管理用に新しいアカウントを 用意するのがきれいな運用の形
  22. 22. LogicFlow で AD へユーザー登録する流れ 1.登録済みか取得する 2.未登録であればユーザーを追加する 未登録の場合はユーザー取得で エラーとなるので続く追加アクションの 実行条件を「エラー時」とすることで 処理の結果確認の判断ロジックが不要になる コネクタによってエラーとなる/ならない の挙動は異なるので注意
  23. 23. 処理結果
  24. 24. Flow で承認アクションを含めると 管理者/上席者が承認しての ユーザー登録が行える
  25. 25. Azure Automation を LogicFlow で利用 Logic Apps/Flow で利用可能なコネクタ 登録しているスクリプトや Runbook を 実行、結果の取得が行える
  26. 26. 利用するスクリプトや Runbook を指定 必要なパラメータ指定も デザイナー上から行える
  27. 27. ただし PowerShell スクリプトの場合は パラメータはまとめて指定する方法に限定 http://blogahf.blogspot.jp/2018/03/azure-automation-logicflow.html
  28. 28. Azure Monitor
  29. 29. Azure Monitor とは • Microsoft Azure の基本レベルな監視サービス – 全サービスが対応・・・・・・とはいけてない(継続して対応中) • Azure Monitor から別サービスへ連携ができる • メトリックとアクティビティログが基本 – アクティビティログにアラートを設定 • 設定変更の監視等 – メトリックにアラートを設定 • 動作状況の監視や、成功/失敗の監視等
  30. 30. https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-overview
  31. 31. https://docs.microsoft.com/ja-jp/azure/monitoring-and- diagnostics/monitoring-overview-azure-monitor Azure 上の VM 各種サービス
  32. 32. ポータルでの操作 ストレージでの保存 詳細なログ管理 後続作業の実行 各種サービス
  33. 33. https://azure.microsoft.com/ja-jp/pricing/details/monitor/ Azure Monitor の価格
  34. 34. 現時点では (旧)アラートと (新)アラートが混在
  35. 35. Alert / Metric は 各種サービスからも設定可能
  36. 36. 対象を ALL… とした場合 Metric を対象にしたルール 設定が行えない 対象を限定している場合 Metric のルール設定が可能
  37. 37. Azure 全体の正常性アラートは 「モニター」→「サービス正常性」→「正常性アラート」から作成
  38. 38. ルールに適合した場合の アクションを設定 アクション先・内容に応じて グループとして定義、流用する LogicApp をアクション先に選択する場合 HTTP Request トリガを利用している LogicFlow が必要
  39. 39. 設定したルールに該当する 状況を検知した場合に送付 されるメール Activated / Deactivated の 2回通知が行われる
  40. 40. 一度 Alert を受信させて どのようなスキーマでデータが連携されるかを確認
  41. 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. 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 の条件
  43. 43. 連携されたデータをもとに スキーマを作成する
  44. 44. HTTP Request トリガで設定したスキーマ情報は 式入力ダイアログに反映される
  45. 45. EventGrid
  46. 46. EventGrid とは • 低コストで自動スケーリングするイベント配信機構 • 大量イベントメッセージも問題なし • Azure Subscription や ResourceGroup の変更をキャッチ • メッセージの順番が重要な場合には不向き – その場合は EventHub – EventHub 以外は順番を保証していない
  47. 47. https://docs.microsoft.com/ja-jp/azure/event-grid/overview
  48. 48. イベント発生側 イベント受信側 イベントの集約
  49. 49. https://azure.microsoft.com/ja-jp/pricing/details/event-grid/ EventGrid 価格
  50. 50. EventGrid のトリガは 2 種類 「要求」に含まれている EventGrid トリガ (LogicApps のみ) WebHook 用 URL が 生成されるだけなので Subscription 等は設定必要
  51. 51. EventGrid コネクタのトリガ EventGrid Subscription を 自動で生成し すぐに受信可能な状態 (Topic 不要)
  52. 52. これだけ見ると 別コネクタ イベントの通知方法も 配列/単体 と異なるので注意
  53. 53. Azure Subscription や Azure Resource Group の 変更検知は EventGrid Subscription の設定で可能 内部的には HTTP Request コネクタが生成した URL を EventGrid Subscription の WebHook 先に 設定している
  54. 54. 通知できるイベント種類 Azure Subscription Resource Group での 通知対象は 「リソースの変更」と 「リソースの削除」
  55. 55. EventGrid コネクタは • Azure Subsription • Azure Resource Groups • EventGrid Topics • Eventhub Namespaces • IoTHubs • Storage Accounts • Azure Container Registry に現時点で対応 通知できるイベント種類
  56. 56. リソースの変更で察知できるもの Azure 上で新規作成が 可能なもの プラットフォーム上での 操作がほとんど検知できる
  57. 57. リソースの作成/更新/削除を検知 監視の作成/更新/削除を実施など 付随する管理業務を自動化
  58. 58. LogicFlow Sample Write Resource Event to Logfile
  59. 59. サブスクリプションで発生した リソースの追加/変更/削除を ログファイルにまとめる EventGrid の対象を特定リソース グループに限定すれば特定案件 における変更履歴と扱える
  60. 60. イベント情報は UTC なので 時刻の変更は必要 課金対象となるので アクションでなく関数でもよい
  61. 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. 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" } イベント情報のサンプル 発生したイベントと日時 対象のリソース
  63. 63. ARM コネクタは ・生成/更新 ・削除 ・取得(リスト取得) ・プロバイダ操作実行 が可能
  64. 64. ARM コネクタの Read Resource アクションで Resource の取得が可能 Managed REST API 利用時と 同様の操作が行える
  65. 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/
  66. 66. VM の起動など Resource Provider 操作も可能 現状の設定一覧として Resource 一覧も取得可能
  67. 67. ※全てのプロバイダが 対応している訳ではない Microsoft.Support プロバイダなど 今の ARM コネクタからは利用で きないものも多い (必須項目条件が間違っている… … ) https://docs.microsoft.com/ja-jp/azure/role-based-access-control/resource-provider-operations そしてこのあたりは情報がない
  68. 68. まとめ • Logic Apps/Flow は開発者以外で利用がしやすい – それは本当にコードやスクリプトが必要か • Azure Monitor/EventGrid で Azure 上に発生するイベント をほとんど把握できる – 動作の状況と環境の変遷 – 把握した内容に対しての行動を LogicFlow 化することで 定型的なイベントへの対応を自動化できる – スクリプトなどの既存資産の流用も行いやすい
  69. 69. Appendix
  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

×