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

如何声明使用不同协议端口的azurerm_container_group资源

解决方案

azurerm_container_group 资源的container块下的ports为单端口定义单元,不支持在同一个ports块中批量配置多个端口、分别指定协议,你只需要为每个端口单独声明一个ports块即可,修改后的配置如下:

resource "azurerm_container_group" "statsd_exporter" {
  name                = "${azurerm_resource_group.monitoring.name}-common"
  location            = azurerm_resource_group.monitoring.location
  resource_group_name = azurerm_resource_group.monitoring.name

  ip_address_type = "public"
  os_type         = "Linux"

  container {
    name                  = "statsd-exporter"
    image                 = "prom/statsd-exporter"
    cpu                   = "0.5"
    memory                = "1"

    commands = [
      "--statsd.listen-udp=:8125",
      "--web.listen-address=:9102",
      "--statsd.mapping-config=/tmp/statsd_mapping.yml"
    ]

    # UDP端口8125配置
    ports {
      port     = 8125
      protocol = "UDP"
    }

    # TCP端口9102配置
    ports {
      port     = 9102
      protocol = "TCP"
    }

    # 如需挂载statsd映射配置可启用以下volume块,替换为你本地配置文件的实际路径
    # volume {
    #   name       = "statsd-mapping-config"
    #   mount_path = "/tmp"
    #   read_only  = true
    #   secret = {
    #     "statsd_mapping.yml" = filebase64("${path.module}/statsd_mapping.yml")
    #   }
    # }
  }
}
补充说明
  • 原配置中的commands字段不需要用/bin/bash -c包装,直接传入启动参数即可,原有写法会导致容器启动异常
  • 配置中已预留映射配置文件的挂载逻辑,可根据实际需求启用

内容的提问来源于stack exchange,提问作者Chibolete Sophos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 09:06:03