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

Terraform配置aws_cloudfront_cache_policy传递多个cookie至cookies_config报错

问题原因

报错的核心是dynamic "cookies"块的for_each逻辑错误:cookies_config嵌套结构下最多仅允许存在1个cookies块,你直接将cookies_to_forward列表作为for_each的遍历对象,当列表长度为2时,Terraform会生成2个cookies块,自然触发「属性最多支持1个项,但声明了2个」的报错。你传入单个cookie时恰好只生成1个cookies块,所以能正常运行,但本质逻辑仍然存在问题。
官方文档中提到的items支持列表,是指单个cookies块内的items字段可以传入多值列表,而非允许声明多个cookies块,你的用法混淆了dynamic块的遍历对象和items字段的取值范围。

解决方法

调整cookies、headers、query_strings三个dynamic块的for_each逻辑:仅当需要转发的配置列表不为空时,生成1个对应块,而非遍历列表生成多个块。
修改后的配置示例如下:

resource "aws_cloudfront_cache_policy" "this" {
  name        = lookup(local.cache_policy, local.cache_policy.name, local.cache_policy_name)
  comment     = local.cache_policy.comment
  default_ttl = local.cache_policy.default_ttl
  max_ttl     = local.cache_policy.max_ttl
  min_ttl     = local.cache_policy.min_ttl

  parameters_in_cache_key_and_forwarded_to_origin {
    cookies_config {
        cookie_behavior = local.cache_policy.cookie_behavior
        dynamic "cookies" {
            # 列表不为空时仅生成1个cookies块
            for_each = length(local.cache_policy.cookies_to_forward) > 0 ? [1] : []
            content {
                items = local.cache_policy.cookies_to_forward
            }
        }
      }
    headers_config {
        header_behavior = local.cache_policy.header_behavior
        dynamic "headers" {
            for_each = length(local.cache_policy.headers_to_forward) > 0 ? [1] : []
            content {
                items = local.cache_policy.headers_to_forward
            }
        }
    }
    query_strings_config {
        query_string_behavior = local.cache_policy.query_string_behavior
        dynamic "query_strings" {
            for_each = length(local.cache_policy.query_strings_to_forward) > 0 ? [1] : []
            content {
                items = local.cache_policy.query_strings_to_forward
            }
        }
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:15:03