Terraform配置带Event Hub端点的Event Grid订阅出现eventhub_endpoint块报错如何解决?
问题原因
报错触发的核心原因是azurerm Provider的版本语法差异:eventhub_endpoint 嵌套块仅在 3.0+ 版本的azurerm Provider 中属于 azurerm_eventgrid_system_topic_event_subscription 资源的合法配置项,低于该版本的Provider要求使用顶层 endpoint_type 参数配合 endpoint 属性配置端点。此外你贴出的代码还漏写了资源块的闭合大括号。
解决方案
根据你使用的Provider版本选择对应配置方式即可:
- 若使用azurerm Provider >= 3.0.0
先确认你的Provider版本声明符合要求:
修正后的完整资源配置如下:terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = ">= 3.0.0" } } }resource "azurerm_eventgrid_system_topic_event_subscription" "example" { name = "example-event-subscription" system_topic = azurerm_system_topic.example.name resource_group_name = azurerm_resource_group.example.name eventhub_endpoint { eventhub_endpoint_id = azurerm_eventhub.example.id } } - 若使用azurerm Provider < 3.0.0
无法使用eventhub_endpoint嵌套块,需改用旧版语法配置:resource "azurerm_eventgrid_system_topic_event_subscription" "example" { name = "example-event-subscription" system_topic = azurerm_system_topic.example.name resource_group_name = azurerm_resource_group.example.name endpoint_type = "EventHub" endpoint = azurerm_eventhub.example.id }
建议优先升级到最新稳定版azurerm Provider,旧版本语法已处于废弃状态,后续会被正式移除;新版本嵌套块结构支持死信队列、重试策略等更多自定义配置,扩展性更强。
内容的提问来源于stack exchange,提问作者Jayendran
相关产品推荐
相关产品推荐

