При создании подписки на сетку событий для получения темы «ID содержит больше сегментов, чем требуется»

Создан код для развертывания подписки Event Grid (которая подписывается на существующую тему, использует существующую учетную запись хранения и группу ресурсов).

locals {
  environment = terraform.workspace
}

# existing data
data "azurerm_resource_group" "rg" {
  name = "rg-1"
}

data "azurerm_storage_account" "sa" {
  name                = "sa1${local.environment}"
  resource_group_name = data.azurerm_resource_group.rg.name
}

data "azurerm_eventgrid_topic" "topic" {
  name                = "topic-${local.environment}"
  resource_group_name = data.azurerm_resource_group.rg.name
}

# Resources
resource "azurerm_storage_queue" "queue" {
  name                 = "sq-${local.environment}"
  storage_account_name = data.azurerm_storage_account.sa.name
}

resource "azurerm_eventgrid_event_subscription" "sub" {
  name       = "sub-${local.environment}"
  scope      = data.azurerm_eventgrid_topic.topic.id

  storage_queue_endpoint {
    storage_account_id = data.azurerm_storage_account.sa.id
    queue_name         = azurerm_storage_queue.queue.name
  }
}

Подписка помещает сообщения в очередь хранения. Довольно простой случай. План Terraform впервые выполнен правильно. Когда я запускаю приложение, он ошибается:

azurerm_storage_queue.queue: Creating...
azurerm_storage_queue.queue: Creation complete after 1s [id=https://sa1dev.queue.core.windows.net/sq-dev]
azurerm_eventgrid_event_subscription.sub: Creating...
azurerm_eventgrid_event_subscription.sub: Still creating... [10s elapsed]
azurerm_eventgrid_event_subscription.sub: Still creating... [20s elapsed]
azurerm_eventgrid_event_subscription.sub: Still creating... [30s elapsed]
azurerm_eventgrid_event_subscription.sub: Still creating... [40s elapsed]
azurerm_eventgrid_event_subscription.sub: Still creating... [50s elapsed]
azurerm_eventgrid_event_subscription.sub: Still creating... [1m0s elapsed]

Error: ID contained more segments than required: "/subscriptions/[SUBSCRIPTION]/resourceGroups/rg-1/providers/Microsoft.EventGrid/topics/topic-dev/providers/Microsoft.EventGrid/eventSubscriptions/sub-dev"

  on main.tf line 27, in resource "azurerm_eventgrid_event_subscription" "sub":
  27: resource "azurerm_eventgrid_event_subscription" "sub" {

Прямо сейчас я вижу, что после применения это сработало нормально (подписка есть и сохраняет сообщение в очереди хранилища). Однако после его применения невозможно запустить план терраформирования из-за ошибки выше.

Кто-нибудь знает, как это решить? Terraform 0.12.25 + provider.azurerm v.2.10.0


person Marcin Dudek    schedule 21.05.2020    source источник


Ответы (1)