在 terraform 的 azure 数据资源管理器中使用 eventthub 的默认消费者组

Posted

技术标签:

【中文标题】在 terraform 的 azure 数据资源管理器中使用 eventthub 的默认消费者组【英文标题】:using default consumer group of eventhub in azure data explorer in terraform 【发布时间】:2022-01-10 12:23:51 【问题描述】:

我可以使用 $Default 消费者组从 azure 仪表板连接 azure 数据资源管理器集群。但是当我尝试从 terraform 中执行相同操作时,我遇到了错误。

获取默认消费组数据

data "azurerm_eventhub_consumer_group" "default" 
  name                = "$Default"
  namespace_name      = azurerm_eventhub_namespace.eh_namespace.name
  eventhub_name       = azurerm_eventhub.eh.name
  resource_group_name = var.resource_group

尝试在adx中使用

resource "azurerm_kusto_eventhub_data_connection" "eventhub_connection" 
  name                = var.adx_eh_connection_name
  resource_group_name = var.resource_group
  location            = data.azurerm_resource_group.eh_adx.location
  cluster_name        = azurerm_kusto_cluster.adx.name
  database_name       = azurerm_kusto_database.database.name

  eventhub_id    = azurerm_eventhub.eh.id
  consumer_group = data.azurerm_eventhub_consumer_group.default.name

  table_name        = var.adx_db_table_name
  mapping_rule_name = var.ingestion_mapping_rule_name
  data_format       = var.eh_message_format

出现错误

Error: invalid value for consumer_group (The consumer group name can contain only letters,
numbers, periods (.), hyphens (-),and underscores (_), up to 50 characters, and 
it must begin and end with a letter or number.)
  on adx.tf line 25, in resource "azurerm_kusto_eventhub_data_connection" "eventhub_connection":
  25: resource "azurerm_kusto_eventhub_data_connection" "eventhub_connection" 

版本

地形:0.14.6 azurerm: 2.53.0

【问题讨论】:

【参考方案1】:

此问题之前已在此 Github issue 中报告,但已在 azurerm provider version 2.28.0 中解决。如需解决方案,请使用最新的 terraform 版本和 azurerm 版本

我使用 Terraform 版本 1.0.11 和最新的 azurerm 提供程序,即 2.88.1 进行了相同的测试。

data "azurerm_eventhub_consumer_group" "consumer_group" 
  name                = "$Default"
  namespace_name      = azurerm_eventhub_namespace.eventhub_ns.name
  eventhub_name       = azurerm_eventhub.eventhub.name
  resource_group_name = azurerm_resource_group.rg.name


resource "azurerm_kusto_eventhub_data_connection" "eventhub_connection" 
  name                = "my-kusto-eventhub-data-connection"
  resource_group_name = azurerm_resource_group.rg.name
  location            = azurerm_resource_group.rg.location
  cluster_name        = azurerm_kusto_cluster.cluster.name
  database_name       = azurerm_kusto_database.database.name

  eventhub_id    = azurerm_eventhub.eventhub.id
  consumer_group = data.azurerm_eventhub_consumer_group.consumer_group.name

输出:

【讨论】:

我正在使用azurerm > 2.28.0。但是当我尝试使用 2.88.1 时,它正在工作。谢谢 很高兴为您提供帮助@PSKP :)

以上是关于在 terraform 的 azure 数据资源管理器中使用 eventthub 的默认消费者组的主要内容,如果未能解决你的问题,请参考以下文章

将现有 Azure 资源导入本地 Terraform 状态文件

使用 Terraform 导入 Azure 上的现有资源

如何使用服务托管标识在 Azure 中使用 Terraform 预配资源

使用 Terraform 创建一个 Azure Active Directory 自定义域

Terraform - 尝试使用服务主体在 Azure 中创建资源并从 keyvault 中提取该 SP 密钥

在Terraform Azure App服务资源中配置CORS