【问题标题】:Concat a list, set as resource attribute连接列表,设置为资源属性
【发布时间】:2020-03-19 20:59:28
【问题描述】:

我正在尝试合并两个列表并将其设置为资源的属性,但出现错误。这是最小的复制:

  network_configuration {
    security_groups = "${concat([module.service_base.allow_lb_access_sg], [module.service_base.intraservice_communication_sg])}"
  }

我遇到了一个超级无用的错误

错误:加载模块时出错:模块 load_balanced_service:加载 .terraform/modules/188cf031fdce92d75131be4747cedad9/XXX.tf 时出错:读取 aws_ecs_service[ecs_service] 的配置时出错:在 1:10 解析错误:预期表达式但找到“[”

它声称第 1 行,但如果您删除该 security_groups 行,一切正常。

【问题讨论】:

    标签: terraform terraform0.11


    【解决方案1】:

    好的,所以文档非常不清楚。我解决这个问题的方法是

    security_groups = ["${concat(list(module.service_base.allow_lb_access_sg), list(module.service_base.intraservice_communication_sg))}"]
    

    请注意,list 函数是必需的。如果您使用[],它仍然会中断。

    然而,如果您的输入之一是一个列表,您不想将其放在 list 中,因为那样它将是一个包含您的列表的列表,例如你想要的

    security_groups = ["${concat(list(module.service_base.allow_lb_access_sg), var.my_list_type_variable)}"]
    

    延伸阅读:https://github.com/hashicorp/terraform/issues/6657

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 2021-11-03
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多