Я новичок в шаблонах ARM и работаю над шаблоном для развертывания веб-теста и правила оповещения для экземпляра приложения. Информация о приложении создается и поддерживается с помощью Terraform, но правила оповещения и веб-тесты пока не поддерживаются в Terraform должным образом. Я использовал пример, взятый из этой проблемы Github , но теперь мы хотим разделить его на шаг ARM в конвейере DevOps Azure, так как нам нужно получить URL-адрес для предупреждения webhook, что мы не можем сделать легко внутри скрипта Terraform.
Я очищал то, что пришло из этого примера, и использовал этот шаблон быстрого запуска в качестве контрольной точки. Однако я заметил кое-что в примере быстрого запуска, которого у меня нет в моем примере, и я не могу найти какую-либо информацию по нему.
В объекте свойств определения правила оповещения у нас есть объект условия, который имеет odata.type
, а связанный dataSource
также имеет odata.type
, например:
"properties": {
"name": "[parameters('test').name]",
"description": "[parameters('test').description]",
"isEnabled": true,
"condition": {
"odata.type": "Microsoft.Azure.Management.Insights.Models.LocationThresholdRuleCondition",
"dataSource": {
"odata.type": "Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource",
"resourceUri": "[resourceId('microsoft.insights/webtests/', parameters('test').name)]",
"metricName": "GSMT_AvRaW"
},
"windowSize": "PT5M",
"failedLocationCount": "[parameters('test').failedLocationCount]"
},
Пример быстрого запуска почти идентичен, но перед записями odata.type
есть запись $type
, например:
"properties": {
"name": "[parameters('tests')[copyIndex(1)].name]",
"description": "[parameters('tests')[copyIndex(1)].description]",
"isEnabled": true,
"condition": {
"$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.LocationThresholdRuleCondition, Microsoft.WindowsAzure.Management.Mon.Client",
"odata.type": "Microsoft.Azure.Management.Insights.Models.LocationThresholdRuleCondition",
"dataSource": {
"$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleMetricDataSource, Microsoft.WindowsAzure.Management.Mon.Client",
"odata.type": "Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource",
"resourceUri": "[resourceId('microsoft.insights/webtests/', parameters('tests')[copyIndex()].name)]",
"metricName": "GSMT_AvRaW"
},
"windowSize": "PT15M",
"failedLocationCount": "[parameters('tests')[copyIndex(1)].failedLocationCount]"
},
Тем не менее мой шаблон работает, но следует ли мне включить свойства $type
? Или они зависят от варианта использования? У меня не было большого успеха в поиске какой-либо документации по этому вопросу.