Создание оповещения Azure через terraform завершается ошибкой с кодом ошибки 400 - PullRequest
0 голосов
/ 10 января 2019

При создании метрического оповещения для учетной записи хранения через terraform я получаю сообщение об ошибке 400

Я просмотрел документацию и подтвердил, что имя, которое я использую для создания оповещения, является правильным

resource "azurerm_metric_alertrule" "test" {
name                = "alerttestacc"
resource_group_name = "${azurerm_resource_group.main.name}"
location            = "${azurerm_resource_group.main.location}"

description = "An alert rule to watch the metric Used capacity"

enabled = true

resource_id = "${azurerm_storage_account.to_monitor.id}"
metric_name = "UsedCapacity"
operator    = "GreaterThan"
threshold   = 20
aggregation = "Total"
period      = "PT5M"

email_action {
    send_to_service_owners = false

    custom_emails = [
    "xyz@gmail.com",
    ]
}

webhook_action {
    service_uri = "https://example.com/some-url"

    properties = {
        severity        = "incredible"
        acceptance_test = "true"
    }
}

Ожидается: оповещение должно быть создано

Фактически:

azurerm_metric_alertrule.test: insights.AlertRulesClient # CreateOrUpdate: ошибка при ответе на request: StatusCode = 400 - Исходная ошибка: авторест / лазурь: Сервис вернул ошибку. Status = 400 Code = "UnsupportedMetric" Message = "The метрика с пространством имен '' и именем 'UsedCapacity' не поддерживается для идентификатор этого ресурса

1 Ответ

0 голосов
/ 13 января 2019

Вы можете использовать azurerm_monitor_metric_alert вместо azurerm_metric_alertrule , чтобы создать UsedCapacity метрическое оповещение для учетной записи хранения. Это возможно из-за различий между классическими оповещениями и новыми оповещениями в мониторинге Azure. Чтение предупреждений обзор .

Этот пример работает на моей стороне.

resource "azurerm_resource_group" "main" {
  name     = "example-resources"
  location = "West US"
}

resource "azurerm_storage_account" "to_monitor" {
  name                     = "examplestorageaccount123"
  resource_group_name      = "${azurerm_resource_group.main.name}"
  location                 = "${azurerm_resource_group.main.location}"
  account_tier             = "Standard"
  account_replication_type = "LRS"
}

resource "azurerm_monitor_action_group" "main" {
  name                = "example-actiongroup"
  resource_group_name = "${azurerm_resource_group.main.name}"
  short_name          = "exampleact"

  webhook_receiver {
    name        = "callmyapi"
    service_uri = "http://example.com/alert"
  }
}

resource "azurerm_monitor_metric_alert" "test" {
  name                = "example-metricalert"
  resource_group_name = "${azurerm_resource_group.main.name}"
  scopes              = ["${azurerm_storage_account.to_monitor.id}"]
  description         = "Action will be triggered when the Used capacity is Greater than 777 bytes."

  criteria {
    metric_namespace = "Microsoft.Storage/storageAccounts"
    metric_name      = "UsedCapacity"
    aggregation      = "Total"
    operator         = "GreaterThan"
    threshold        = 777

  }

  action {
    action_group_id = "${azurerm_monitor_action_group.main.id}"
  }
}

enter image description here

...