首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何连接IP设置描述符

如何连接IP设置描述符
EN

Server Fault用户
提问于 2019-08-07 21:18:18
回答 1查看 239关注 0票数 0

当为addresses在Terraform中创建aws_waf_ipsets时,我有多个IP地址列表,我想在创建aws_waf_rule时将它们连接在一起。当我尝试在concatdata_id中使用aws_waf_rule时,会得到一个错误:* aws_waf_rule.production_wafrule: predicates.0.data_id must be a single value, not a list

这对我来说是有意义的,但是如果我不能在aws_waf_rule中直接连接它,我如何最好地创建一个连接列表,作为我可以在数据ID中引用的资源呢?

下面是生成此错误的示例代码:

代码语言:javascript
复制
resource "aws_waf_rule" "production_wafrule" {
  name        = "production_WAF_rule"
  metric_name = "ProductionWAFRule"

  predicates {
    data_id =  "${concat(list(aws_waf_ipset.vpn_ipset.id),list(aws_waf_ipset.production_ipset.id))}"
    negated = false
    type    = "IPMatch"
  }
}
EN

回答 1

Server Fault用户

发布于 2019-09-02 17:44:46

flatten() (https://www.terraform.io/docs/configuration/functions/flatten.html)可能就是你要找的东西。

没有测试,但是类似这样的内容应该可以完成(请注意,该函数只接受一个列表作为输入,您可以将所有列表放入其中)-

代码语言:javascript
复制
"${flatten([list(aws_waf_ipset.vpn_ipset.id),list(aws_waf_ipset.production_ipset.id)])}"

我相信setunion() (https://www.terraform.io/docs/configuration/functions/setunion.html)也会在列表上工作(并且会减少任何重复的项目)。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/978374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档