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

如何在Terraform中为Azure CDN规则添加多ModifyResponseHeader操作

解决Azure CDN交付规则中多同类型操作的Terraform配置问题

在Azure CDN端点的交付规则中配置多个同类型操作(如ModifyResponseHeader)时,直接重复定义modify_response_header_action块会导致属性被覆盖,但通过Terraform的列表型嵌套块特性可以实现和Azure门户一致的多操作配置逻辑。

核心解决方案

Terraform的azurerm_cdn_endpoint资源中,delivery_rule下的action是列表型嵌套块——每个同类型操作作为独立的action列表项存在,即可避免覆盖问题。

示例配置代码

resource "azurerm_cdn_endpoint" "example" {
  name                = "example-cdn-endpoint"
  profile_name        = azurerm_cdn_profile.example.name
  resource_group_name = azurerm_resource_group.example.name
  origin_host_name    = azurerm_storage_account.example.primary_blob_host

  delivery_rule {
    name  = "multiple-response-headers"
    order = 1

    # 单个匹配条件(可根据业务需求调整或添加多个条件)
    request_header_condition {
      name           = "User-Agent"
      operator       = "Contains"
      match_values   = ["Chrome"]
      negate_condition = false
    }

    # 第一个响应头操作:追加X-Custom-Header1
    action {
      modify_response_header_action {
        action_type = "Append"
        header_name = "X-Custom-Header1"
        value       = "cdn-custom-value-1"
      }
    }

    # 第二个响应头操作:追加X-Custom-Header2
    action {
      modify_response_header_action {
        action_type = "Append"
        header_name = "X-Custom-Header2"
        value       = "cdn-custom-value-2"
      }
    }

    # 第三个响应头操作:替换已有X-Cache-Status头
    action {
      modify_response_header_action {
        action_type = "Replace"
        header_name = "X-Cache-Status"
        value       = "cdn-processed"
      }
    }
  }
}

关键说明

  • 每个action块仅能包含一种类型的操作(如要么是modify_response_header_action,要么是url_redirect_action)
  • 同类型操作通过拆分到不同action块,实现和Azure门户中"添加多个同类型操作"完全一致的效果
  • 若需配置多个条件,同样可通过在delivery_rule下添加多个条件块(如request_header_condition)实现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:03:16