ARMテンプレートを使ってAzure Monitorのアクショングループをデプロイしてみた

 

Azure MonitorのアクショングループをARMテンプレートを利用してデプロイしてみました。今回はメール送信のアクショングループを作成してみました。下記サイトのARMテンプレートを参考に作成しています。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/action-groups-create-resource-manager-template

ARMテンプレート内のvariables 関数で変数を指定するようにしてます。

今回作成した内容はGithubにも公開しています。

.アクショングループで設定する内容

Azure Monitorのアラートを選択します。アクションの管理が表示されるので選択し、表示されるアクショングループの追加をクリックします。そうすると、以下の画面が表示されます。

今回、指定する値は、以下の通りになります。

  • アクショングループ名
  • 短い名前
  • サブスクリプション(デプロイ時に指定します)
  • リソースグループ(デプロイ時に指定します)
  • 操作名
  • アクションの種類(今回は電子メールを想定しま。)
  • 電子メールアドレス(アクションの種類で電子メールを選択すると入力できます)

.アクショングループのARMテンプレートを作成する

電子メールを送信するアクショングループのテンプレートは下記のようになります。テンプレート内のemailReceiversが電子メールに関するアクションを定義する項目になります。

{
 ”$schema”: “https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#”,
 ”contentVersion”: “1.0.0.0”,
 ”variables”: {
   “actionGroupName”: “アクショングループ名”,
   “actionGroupShortName”: “短い名前”,
   “OperationName”: “操作名”,
   “emailAddress”: “送信先の電子メールアドレス”
    },

  },
  ”resources”: [
  {
   ”type”: “Microsoft.Insights/actionGroups”,
   ”apiVersion”: “2018-03-01”,
   ”name”: “[variables(‘actionGroupName’)]”,
   ”location”: “Global”,
   ”properties”: {
    ”groupShortName”: “[variables(‘actionGroupShortName’)]”,
    ”enabled”: true,
    ”emailReceivers”: [
     {
     ”name”: “[variables(‘OperationName’)]”,
     ”emailAddress”: “[variables(‘emailAddress’)]”
     }
    ]
   }
  }
 ],
 ”outputs”:{
  ”actionGroupId”:{
  ”type”:”string”,
  ”value”:”[resourceId(‘Microsoft.Insights/actionGroups’,variables(‘actionGroupName’))]”
  }
 }
}

.Power ShellでARMテンプレートをデプロイする

最後に、作成したARMテンプレートをPower Shellでデプロイします。デプロイ方法は下記を参考にしています。Power Shell実行時に、Action Groupを作成するリソースグループ名を指定します。

https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/templates/deploy-powershell#deploy-local-template

#テンプレートをデプロイするPowerShell
$resourceGroupName = Read-Host -Prompt “Enter the Resource Group name”
$TemplateFilePath = “テンプレートファイルのパス(ex;”C:\tmp\ActionGroup_templete.json”)”

New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
-TemplateFile $TemplateFilePath
 

最後に以下のPower Shellで実際にAction Groupができているか確認します。

$resourceGroupName = “リソースグループ名”
$actionGroupName = “アクショングループ名”

Get-AzActionGroup -ResourceGroupName $resourceGroupName -Name $actionGroupName