Terraform:为什么不接受扩展运营商?

Terraform:为什么不接受扩展运营商?,terraform,Terraform,背景:我想创建一些Lambda函数,其中一些使用相同的本地文件。我想将本地文件复制到多个目标构建目录中,这些目录最终将被压缩 给定定义lambdas相关配置的以下变量: locals { related_lambdas = { lambda_a = { build_dir = "dir_a" src_files = ["file_a", "file_b"] } lambda_b = { build_dir = "dir_b"

背景:我想创建一些Lambda函数,其中一些使用相同的本地文件。我想将本地文件复制到多个目标构建目录中,这些目录最终将被压缩

给定定义lambdas相关配置的以下变量:

locals {
  related_lambdas = {
    lambda_a = {
      build_dir = "dir_a"
      src_files = ["file_a", "file_b"]
    }
    lambda_b = {
      build_dir = "dir_b"
      src_files = ["file_a", "file_b"]
    }
  }

  other_lambda = {
      build_dir = "dir_c"
      src_files = ["file_c"]

  }

  lambdas = tomap(merge(local.related_lambdas, { other_lambda = local.other_lambda }))

}
我相信上面的内容会使
local.lambda
成为一个带有3个键的地图
lambda\u a
lambda\u b
其他lambda

我想使用该资源创建以下目录结构:

../build/    
  dir_a/
    file_a
    file_b

  dir_b/
    file_a
    file_b

  dir_c/
    file_c
我对每个循环使用

resource "local_file" "copy_lambda_files_to_build_dir" {
  for_each = merge(
    tolist([
      for k, v in local.lambdas:
        tomap({ for f in v.src_files: format("%s/%s", v.build_dir, basename(f)) => f })
    ])...
  )
}
但是,我得到一个错误:

The expanding argument (indicated by ...) must be of a tuple, list, or set
type.
怎么了?我认为
for_each
循环应该采用
local.lambdas
的每个元素,并为该元素中的每个源文件创建一个映射,返回一个映射元组。我显式地将该元组转换为映射列表,这些映射通过
..
展开并传递到
merge()