Создан код для развертывания подписки 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