You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure HDInsight Kafka Terraform脚本:指定Worker数与禁用公网IP

问题描述

使用Terraform创建Azure HDInsight Kafka集群时,尝试在azurerm_hdinsight_kafka_cluster根块中添加以下参数来设置5个Kafka Worker节点并禁用公网IP:

worker_node_count   = 5
enable_gateway      = false

执行terraform plan时触发如下错误:

on hdinsight.tf line 44, in resource "azurerm_hdinsight_kafka_cluster" "kafka_cluster":
│   44:   worker_node_count   = 5
│ 
│ An argument named "worker_node_count" is not expected here.
╵
╷
│ Error: Unsupported argument
│ 
│   on hdinsight.tf line 45, in resource "azurerm_hdinsight_kafka_cluster" "kafka_cluster":
│   45:   enable_gateway      = false
│ 
│ An argument named "enable_gateway" is not expected here.

解决方案

1. 配置Kafka Worker(Broker)节点数量

HDInsight Kafka集群的Worker节点数量需在roles下的worker_node块中通过target_instance_count参数设置,而非根块的worker_node_count。将该参数值改为5即可实现5个Broker节点的需求:

roles {
  # ... 其他角色配置 ...
  worker_node {
    virtual_network_id = azurerm_virtual_network.virtual_network.id
    subnet_id = azurerm_subnet.subnet.id
    vm_size                  = "Standard_D3_V2"
    username                 = "my-username"
    password                 = "my-password"
    number_of_disks_per_node = 3
    target_instance_count    = 5  # 修改此处为5
  }
  # ... 其他角色配置 ...
}

2. 禁用集群公网IP

要关闭集群的公网网关(禁用公网IP),直接删除根块中的gateway配置块即可。因为当未配置gateway块时,HDInsight集群的公网网关默认处于禁用状态,无需使用enable_gateway参数。

修改后的完整配置示例

provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "rg" {
  name     = "my-resource-group"
  location = "eastus"
}

resource "azurerm_virtual_network" "virtual_network" {
    resource_group_name = azurerm_resource_group.rg.name
    name = "my-vnet"
    location = "eastus"
    address_space = ["10.136.82.0/24"]
}

resource "azurerm_subnet" "subnet" {
  name                 = "subnet-3"
  resource_group_name  = azurerm_resource_group.rg.name
  virtual_network_name = azurerm_virtual_network.virtual_network.name
  address_prefixes     = ["10.136.82.64/27"]
}

resource "azurerm_storage_account" "storage_account" {
  name                     = "my-storage-account"
  resource_group_name      = azurerm_resource_group.rg.name
  location                 = azurerm_resource_group.rg.location
  account_tier             = "Standard"
  account_replication_type = "LRS"
}

resource "azurerm_storage_container" "storage_container" {
  name                  = "hdinsight"
  storage_account_name  = azurerm_storage_account.storage_account.name
  container_access_type = "private"
}

resource "azurerm_hdinsight_kafka_cluster" "kafka_cluster" {
  name                = "my-hdicluster"
  resource_group_name = azurerm_resource_group.rg.name
  location            = azurerm_resource_group.rg.location
  cluster_version     = "4.0"
  tier                = "Standard"

  component_version {
    kafka = "2.4"
  }

  storage_account {
    storage_container_id = azurerm_storage_container.storage_container.id
    storage_account_key  = azurerm_storage_account.storage_account.primary_access_key
    is_default           = true
  }

  roles {
    head_node {
      virtual_network_id = azurerm_virtual_network.virtual_network.id
      subnet_id = azurerm_subnet.subnet.id
      vm_size  = "Standard_D3_V2"
      username = "my-username"
      password = "my-password"
    }

    worker_node {
      virtual_network_id = azurerm_virtual_network.virtual_network.id
      subnet_id = azurerm_subnet.subnet.id
      vm_size                  = "Standard_D3_V2"
      username                 = "my-username"
      password                 = "my-password"
      number_of_disks_per_node = 3
      target_instance_count    = 5  # 配置5个Worker节点
    }

    zookeeper_node {
      virtual_network_id = azurerm_virtual_network.virtual_network.id
      subnet_id = azurerm_subnet.subnet.id
      vm_size  = "Standard_D3_V2"
      username = "my-username"
      password = "my-password"
    }
  }
}

额外提示:原配置中azurerm_subnet的resource_group_name使用了硬编码值,改为引用azurerm_resource_group.rg.name可提升配置的一致性和可维护性。

内容的提问来源于stack exchange,提问作者Eugene Goldberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:57:51