count属性JAVA_根据另一个资源上的属性长度设置“count”

我有一个相当简单的Terraform配置,它创建一个Route53区域,然后在Cloudflare中创建NS记录,以将子域委托给该区域 . 目前,它假设每个Route53区域总共有四个权威DNS服务器,并创建四个单独的 cloudflare_record 资源,但我想概括一下,部分原因是谁知道AWS是否会开始在第五个权威服务器中放置未来,但对于未来更复杂的东西也是如此(如AWS AZs,我知道区域之间的数量不同) .

到目前为止我想出的是:

resource "cloudflare_record" "public-zone-ns" {

domain = "example.com"

name = "${terraform.env}"

type = "NS"

ttl = "120"

count = "${length(aws_route53_zone.public-zone.name_servers)}"

value = "${lookup(aws_route53_zone.public-zone.name_servers, count.index)}"

}

resource "aws_route53_zone" "public-zone" {

name = "${terraform.env}.example.com"

}

但是,当我在此运行 terraform plan 时,我收到此错误:

Error running plan: 1 error(s) occurred:

* cloudflare_record.public-zone-ns: cloudflare_record.public-zone-ns: value of 'count' cannot be computed

我认为这意味着因为 aws_route53_zone 不知道 length(aws_route53_zone.public-zone.name_servers) 是什么,因此 cloudflare_record.public-zone-ns.count 的插值失败而且我搞砸了 .

然而,对我来说,Terraform如此不灵活似乎令人惊讶;肯定能够创建像这样的可变数量的资源将是肉和土 beans 的东西 . 硬编码长度,或创建单独的资源,似乎是......限制 .

那么,我错过了什么?如果我事先不知道我需要多少资源,怎么能创建一些资源呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值