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

如何将Terraform输出的Azure WebApp公网IP导入Cloudflare列表?

解决方案

用Terraform的split函数拆分逗号分隔的IP字符串,再配合dynamic块生成Cloudflare要求的item结构,这就是你需要的正确方案,具体实现步骤如下:

1. 拆分IP字符串为列表

先通过locals把Azure WebApp返回的逗号分隔IP字符串转换成列表:

locals {
  # 把逗号分隔的IP字符串拆分为列表
  webapp_ips = split(",", azurerm_linux_web_app.lwa.outbound_ip_addresses)
}

2. 用Dynamic块生成Cloudflare列表项

在Cloudflare列表资源中,使用dynamic "item"遍历IP列表,自动生成符合格式的配置块:

resource "cloudflare_list" "webapp_outbound_ips" {
  account_id = var.cloudflare_account_id # 替换为你的Cloudflare账号ID变量
  name       = "Azure-WebApp-Outbound-IPs"
  type       = "ip"

  dynamic "item" {
    # 遍历拆分后的IP列表
    for_each = local.webapp_ips
    
    content {
      value {
        ip = item.value
      }
      # 自动生成带编号的注释,比如"IP 1"、"IP 2"
      comment = "IP ${index(local.webapp_ips, item.value) + 1}"
    }
  }
}

关键说明

  • split(",", ...)会把outbound_ip_addresses返回的逗号分隔字符串直接拆转为字符串列表,方便后续遍历
  • dynamic块会根据IP列表的长度自动生成对应数量的item块,完全匹配Cloudflare的格式要求
  • 当Azure WebApp的出站IP发生变化时,Terraform会自动识别差异并更新Cloudflare列表,实现全自动化

内容的提问来源于stack exchange,提问作者Pedro Et Ferreira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:00:03