Azure Resource Healthの取得からメール送信までをLogic Apps使って自動化

2021-03-07Azure,Logic Apps,Monitor

Azure Resource Health(リソース正常性)の取得からメール送信までを自動化する手順です。
Azure Logic Apps(ロジックアプリ)のワークフローを使って実現しています。

リソース正常性はAzure Portalでも確認できますが、リソースの種類や特定のリソースを選択して確認する必要があります。
複数のリソースを確認する際には、手間がかかることがあります。

リソースの正常性は、REST APIを利用して取得できます。
REST APIを使うことで、Logic Appsのワークフロー内でリソース正常性の取得ができます。
Logic Appsのワークフローを使って、メール送信もできます。

REST APIを使ったリソース正常性の取得手順を確認します。
REST APIを使ったリソース正常性の取得、JSONデータをHTML形式に変換、SendGridを使ったメール送信までのLogic Appsワークフローを作成します。

※本記事内では、一部を除きAzure Logic Apps(ロジックアプリ)をLogic Appsとして表記しています。
※本記事内では、一部を除きAzure Resource Healthをリソース正常性として表記しています。

スポンサーリンク

リソース正常性をREST APIを利用して取得

Azure REST API リファレンスというドキュメントが公式サイトで公開されています。

Azure REST API reference

リソース正常性を取得するREST APIも準備されています。

Availability Statuses – List By Subscription Id

このREST APIを利用して、サブスクリプション内のAzureリソースに関するリソース正常性を取得できます。

REST APIの実行手順

Availability Statuses – List By Subscription Idへアクセスします。

使ってみるをクリックします。
Azureへのログイン画面が表示されます。
ログインしてサブスクリプションを選択します。

Availability Statuses - List By Subscription Id

”REST APIを使ってみる”が表示されます。
パラメータはサブスクリプションのみになります。
サブスクリプションIDを選択し実行をクリックします。

Availability Statuses - List By Subscription Id

正常に取得された場合、応答コード200が表示されます。
サブスクリプション内のリソース正常性が一覧として取得できます。
JSON形式で取得できます。

Availability Statuses - List By Subscription Id

リソース正常性の概要説明や、監視設定方法については、こちらで紹介しています。

Logic Appsのリソース作成やマネージドIDを設定

Logic Appsのリソース作成手順

ロジックアプリのリソース作成手順については、こちらを参照ください。
今回は、マルチテナント(従量課金)を利用しています。

Logic Appsでシステム割り当てマネージドIDを設定

Logic AppsのワークフローからAzure REST APIを利用する場合、Azureの認証が必要です。
今回は、認証方法としてシステム割り当てのマネージドIDを使用しています。

Azure リソースのマネージド ID とは

マネージドIDを有効化した後、ロールを割り当てます。

システム割り当てマネージドID設定

マネージドIDの割り当てはリソースメニューのIDになります。
リソースIDを有効化後、Azureロールの割り当てを選択します。

マネージドIDにロールを割り当てます。
サブスクリプションに対して閲覧者を割り当てます。

スコープ:ロールの割り当ての適用範囲
リソースグループ:ロールの割り当てるリソースグループ
役割:ロールの割り当て内容

サブスクリプションに対して閲覧者ロールが割り当てられています。

—広告—

リソース正常性を取得するLogic Apps ワークフローを作成

Logic Apps ワークフローの流れ

今回作成した、ワークフローの流れです。

    • HTTPトリガー:REST APIを使ってリソース正常性をJSON形式で取得
    • JSONの解析:リソース正常性のJSONファイルを項目化
    • HTMLテーブルの作成:JSONの解析で項目化された内容をHTMLテーブルに変換
    • メールの送信:HTMLテーブルの出力結果をメール送信

HTTPトリガーを作成

ロジックアプリデザイナーを使ってワークフローを作成します。
HTTPトリガーを作成します。
REST APIの画面で確認したURLを設定します。
実行スケジュールはHTTPトリガーで設定しています。

HTTPトリガーの作成手順

ロジックアプリデザイナーのメニューで空のロジックアプリを選択します。

検索欄にHTTPと入力します。
トリガーの中からHTTPを選択します。

 

HTTPで設定する方法とURIの値を確認します。

Availability Statuses – List By Subscription Idへで要求URLを確認します。

方法への設定は要求URL欄の最初の部分を設定します。
今回はGETになります。
URIへは要求の内容を設定します。

HTTPトリガーは、スケジュール実行設定ができます。
Add new parameterで認証、タイムゾーン、開始時刻を選択します。

タイムゾーンや開始日時を設定します。
1日1度朝9時に実行する設定にします。

認証の種類にマネージドIDを選択します。

HTTPトリガーの設定が完了した状態です。

スケジュール化してワークフローを実行する場合、繰り返しのトリガーも利用できます。
繰り返しトリガーによる、ワークフローのスケジュール実行手順は、こちらを参照願います。

JSONの解析アクションを作成

REST APIを実行した際の結果はJSON形式で取得されます。
実行結果をテーブル化して表示するためには、JSONを解析して項目を抽出するアクションが必要です。
サンプルスキーマには、REST APIを実行した結果を利用しています。

JSONの解析アクションの作成手順

検索欄にJSONと入力します。
JSONの解析(データ操作)を選択します。

サンプルペイロードを使用してスキーマを生成するを選択します。
スキーマの入力欄が表示されます。
REST APIを実行した結果(本文)をコピーし、サンプルスキーマの入力欄に張り付けます。
スキーマが生成されます。

※REST API実行時にパラメータに$expand:recommendedactionsを設定するとより詳細な情報が取得できます。
Logic Appsでワークフローを実行した時にエラーになる事があったため、今回は付与せず作成しています。

HTTPトリガー出力の本文をJSONの解析の入力として利用します。
コンテンツに本文(HTTP)を選択します。
JSONの解析アクションの設定が完了した状態です。

HTMLテーブルの作成(JSON→HTMLテーブルへ変換)

解析したJSONの出力結果をHTMLテーブルに変換します。

    • 出力内容
      • id:リソースID
      • availabilityState:リソースの利用可否状態
      • status:ステータス内容
HTMLテーブルの作成

検索欄にHTMLと入力します。
HTMLテーブルの作成(データ操作)が表示されますので選択します。

列はカスタムを選択します。
ヘッダー欄や値の項目にそれぞれの値や出力結果を設定します。

SendGridを使ってリソース正常性をメール送信

メール送信にはSendGridを利用しています。
Logic AppsにはSendGridのコネクタが用意されています。

SendGridのアカウント作成手順は、こちらで紹介しています。

SendGridを使ってメール送信

検索欄にSendGridと入力します。
メール送信(V4)を選択します。

SendGridアカウントの認証設定が表示されます。
接続名とSendGridのAPIキーを入力します。

メール送信の設定画面が表示されます。送信元、宛先、件名等を入力します。
メールの本文にHTMLテーブルの作成の出力を設定します。

設定完了画面です。

最後にロジックアプリデザイナーで保存を選択します。

—広告—

Logic Appsのワークフローを実行してリソース正常性を取得してメール送信

Logic Appsのワークフローを実行して、リソース正常性を取得、メール送信します。

Logic Appsのワークフローを実行

ロジックアプリデザイナーの画面で実行をクリックします。
成功するとグリーンのチェックが表示されます。
リソース正常性のステータスを、メールで確認できました。

Logic Appsのワークフローを使って、リソース正常性の取得からメール送信までの自動化ができました。
引き続き、いろいろ試してみたいと思います。

Azure Portalでのリソース正常性確認方法については、こちらで紹介しています。

Logic Appsを利用したARMテンプレートのエクスポートからメール送信までの手順は、こちらで紹介しています。

スポンサーリンク