Terraform - Создание подписок на таблицы событий Azure - может ли это сделать? - PullRequest
0 голосов
/ 25 октября 2019

Я некоторое время пытался создать Terraform для подписки на события в сетке событий Azure.

Согласно скриншоту ....

EVENT SUBSCRIPTION DETAILS
NAME : EventGrid-Sub1
(don't need to change Event Schema) 

TOPIC DETAILS
Event Grid Domain
Topic Resource: EDG-SBX-EventGrid1
Domain Type: EventGrid-DomainTopic1 

ENDPOINT DETAILS
Endpoint Type: Event Hubs
Endpoint : eh-sbx-Ingestion 

Я былиспользуя их в качестве ссылки, но кажется, что не только немного курицы с яйцом, но кусочки отсутствуют?

https://www.terraform.io/docs/providers/azurerm/r/eventgrid_event_subscription.html https://www.terraform.io/docs/providers/azurerm/r/eventgrid_topic.html

Кто-нибудь получил эту работу в Terraform?

Заранее спасибо

Снимок экрана Azure на сетке событий / экране создания подписки на события

1 Ответ

0 голосов
/ 27 октября 2019

@ nmca70 Есть несколько способов добиться этого:

  1. Создать шаблон ARM из окончательного развертывания и затем запустить этот шаблон ARM с помощью Terraform:

https://www.terraform.io/docs/providers/azurerm/r/template_deployment.html

Создание ресурсов в следующем порядке:

Пример:

resource "azurerm_resource_group" "test" {
  name     = "resourceGroup1"
  location = "West US 2"
}

resource "azurerm_eventhub_namespace" "test" {
  name                = "acceptanceTestEventHubNamespace"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"
  sku                 = "Standard"
  capacity            = 1
  kafka_enabled       = false

  tags = {
    environment = "Production"
  }
}

resource "azurerm_eventhub" "test" {
  name                = "acceptanceTestEventHub"
  namespace_name      = "${azurerm_eventhub_namespace.test.name}"
  resource_group_name = "${azurerm_resource_group.test.name}"
  partition_count     = 2
  message_retention   = 1
}

resource "azurerm_eventgrid_topic" "test" {
  name                = "my-eventgrid-topic"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"

  tags = {
    environment = "Production"
  }
}

resource "azurerm_eventgrid_domain" "test" {
  name                = "my-eventgrid-domain"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"
  input_schema        = "eventgridschema"

  input_mapping_fields= {
    topic = "my-eventgrid-topic"
  }

  tags = {
    environment = "Production"
  }
}

resource "azurerm_eventgrid_event_subscription" "default" {
  name  = "defaultEventSubscription"
  scope = "${azurerm_resource_group.default.id}"
  event_delivery_schema = "EventGridSchema"
  topic_name = "my-eventgrid-topic"

  eventhub_endpoint {
    storage_account_id = "${azurerm_eventhub.test.id}"
  }
}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...