🎼

[Azure] ARM テンプレート読み解き (サイトの死活監視と ISO 8601)

2 min read

はじめに

Azure QuickStart Templates を読み込んで勉強しよう!
ということで、アウトプットもしてみます。第6弾です。

今回の読み解き対象

Metric alert rule for an availability test

テンプレートの概要

こちらのテンプレートをデプロイすると、Application Insights を利用した Web サイトの監視とアラートを構成することができます (超単純なものですが)。

この ARM テンプレートで見えるのは、Application Insights の設定と ISO 8601 に基づく時間指定です。

読み解く

毎度ですが、よくあるテンプレートのパターンは下記の通りです。

  1. パラメータ指定 (parameters)
  2. 変数の設定 (variables)
  3. デプロイするリソースの記述 (resources)

パラメータ指定 (parameters)

前半の "parameters": から始まる部分では、テンプレート内で使われるパラメータ (変数) の設定です。テンプレートのデプロイ時に選択肢として表示させたりすることができます。

監視対象の URL や、Application Insights の Resource ID などを指定させています。

変数の設定 (variables)

"variables": セクションでは、この yaml ファイル中で利用する変数名を設定できます。このテンプレートでは、作成される監視の名前とアラートの名前をパラメータから生成しています。concat() は、ざっくり言えば引数の文字列を全て結合する関数です。

azuredeploy.json
  "variables": {
    "pingTestName": "[concat('PingTest-', toLower(parameters('appName')))]",
    "pingAlertRuleName": "[concat('PingAlert-', toLower(parameters('appName')), '-', subscription().subscriptionId)]"
  },

デプロイするリソースの記述 (resources)

"resources": セクションで、デプロイするリソースを記述しています。

リソースは Microsoft.Insights/webtestsMicrosoft.Insights/metricAlerts の二つのみです。

前者のリソースのプロパティは Microsoft.Insights webtests template reference、後者は Microsoft.Insights metricAlerts template reference がリファレンスです。

だいたい直感的かなと思うのですが、今回のポイントは下記の記述です。

azuredeploy.json
        "evaluationFrequency": "PT1M",
        "windowSize": "PT5M",

evaluationFrequency は「アラートの評価間隔」、windowSize は「アラートの評価のウィンドウサイズ」っぽいですが、値に入っているものはどういう意味なんでしょうか?

と、ここで出てくるのが「ISO 8601」になります。リファレンスにも記載されていますね!

in ISO 8601 duration format

詳細は Wikipedia が分かりやすいと思うので こちら を参照してください。

定義に従うと、PT1M は「1分間」、PT5Mは「5分間」を示すことになります。

最後に

Azure QuickStart Templates は、Azure を勉強するにあたっては結構宝の山だとも思うので、今後も面白そうなものを読み解いてはアウトプットしていきたいな、と思います。

また、今回のテンプレートでの監視/アラートはものすごく単純なものでしかないですが、もっと様々な監視やアラートについては下記のドキュメント等も参考にすると良いのではと思います!

Resource Manager テンプレートでのメトリック アラートの作成