リソース正常性(Azure Resource Health)をLogic Appsを使ってメール送信
Logic Apps(ロジックアプリ)を使ってAzure Resource Health(リソース正常性)をメール送信してみました。
Azure Resource Health(リソース正常性)はAzure Portalでも確認出来ます。
リソースの種類やリソース自体を選択して確認する必要があります。
複数のリソースについて確認する場合に面倒だったりします。
REST APIを使うとリソースでリソース正常性が取得出来そうでした。
Logic Apps(ロジックアプリ)のワークフローを使う事でAzure Resource Health(リソース正常性)取得からメール送信まで自動化できそうでした。
そこで今回は最初にREAT APIを使ったAzure Resource Health(リソース正常性)取得を確認します。
その後にAzure Logic Apps(ロジックアプリ)の設定、ワークフロー作成(REST APIを使ったリソース正常性取得、JSONからHTMLへの変更、SendGridを使ったメール送信)をやってみます。
REST APIを利用したAzure Resource Health(リソース正常性)取得
マイクロソフト社のサイトにAzure REST API referenceというドキュメントがあります。
その中にリソース正常性を取得するREST APIがあります。
Availability Statuses – List By Subscription Id
このREST APIを利用するとサブスクリプションのAzureリソースに関するAzure Resource Health(リソース正常性)を取得する事が出来ます。
REST APIの実行手順 | |
Availability Statuses – List By Subscription Idへアクセスします。 使ってみるをクリックします。 |
|
”REST APIを使ってみる”が表示されます。 |
|
正常に取得された場合は応答コード200が表示されます。 |
リソース正常性の監視設定や概要説明についてはこちらでやっています。
Logic Apps(ロジックアプリ)で事前設定
Logic Apps(ロジックアプリ)でREST APIを利用する場合にはAzureの認証が必要となります。
今回の認証方法にはマネージドIDを使いました。
Logic Apps(ロジックアプリ)のリソース作成
ロジックアプリ自体のリソース作成についてはこちらを参照願います。
Logic AppsでマネージドIDの設定
マネージドIDはシステム割り当てマネージドIDを利用します。
マネージドID有効化後にロールを割り当てます。
これで事前準備作業は完了です。
Azure Resource Health(リソース正常性)を取得するワークフローを作成
ワークフローの流れ
ワークフローの流れはこのような形になります。
-
- HTTPトリガー:REST APIを使ってAzure Resource Health(リソース正常性)をJSON形式で取得
- JSONの解析:Azure Resource Health(リソース正常性)のJSONファイルを項目化
- HTMLテーブルの作成:JSONの解析で項目化された内容をHTMLテーブルに変換
- メールの送信:HTMLテーブルの出力結果をメール送信
HTTPトリガー
ロジックアプリデザイナーを使ってワークフローを作成します。
HTTPトリガーを作成します。
REST APIの画面で確認したURLを設定します。
実行スケジュールはHTTPトリガーで設定しています。
作成手順 | |
ロジックアプリデザイナーのメニューで空のロジックアプリを選択します。 |
|
検索欄にHTTPと入力します。 |
|
HTTPで設定する方法とURIの値を確認します。 Availability Statuses – List By Subscription Idへで要求URLを確認します。 方法への設定は要求URL欄の最初の部分を設定します。今回はGETになります。 |
|
HTTPトリガーでスケジュール実行設定が出来ます。 |
|
タイムゾーンや開始日時を設定します。 |
|
認証の種類にマネージドIDを選択します。 |
|
設定が終わった状態です。 |
トリガーには繰り返し(スケジュール実行)を選択する事も可能です。
繰り返しトリガーによるスケジュール実行はこちらを参照願います。
JSONの解析アクション
REST APIを実行した際の結果はJSON形式で得られます。
テーブル化する為には解析するアクションが必要になります。
スキーマの生成にはREST APIを実行した結果を利用します。
HTMLテーブルの作成(JSON→HTMLテーブルへ変換)
JSONの出力をHTMLテーブルに変換します。
今回はこちらの内容を出力します。
-
- 出力内容
- id:リソースID
- availabilityState:リソースの利用可否状態
- status:ステータス内容
- 出力内容
HTMLテーブルの作成 | |
検索欄にHTMLと入力します。 |
|
列はカスタムを選択します。 今回はステータス等の情報を表示するようにしました。 |
SendGridを使ってメール送信
今回はメール送信にはSendGridを利用します。
Logic Apps(ロジックアプリ)にはSendGridのアクションが用意されています。
SendGridのアカウント作成手順はこちらを参照願います。
Azure Resource Health(リソース正常性)をメール送信(Logic Apps(ロジックアプリ)実行)
Logic Apps(ロジックアプリ)を実行してAzure Resource Health(リソース正常性)をメール送信します。
Logic Apps(ロジックアプリ)実行内容 | |
ロジックアプリデザイナーの画面で実行をクリックします。 |
|
このようなメールでリソース正常性のステータスを把握する事が出来ました。 |
Logic Apps(ロジックアプリ)を使ってAzure Resource Health(リソース正常性)をメール送信する事が出来ました。
今後もアップデートしていきたいと思います。
Azure PortalでのAzure Resource Health(リソース正常性)確認はこちら。
Logic Apps(ロジックアプリ)を利用してARMテンプレートをエクスポートからメール送信までやってみました。