Terraform ";计数“;及;对于“每个人”;元参数是互斥的,只能使用一个来明确说明要创建的资源数量
资源代码:Terraform ";计数“;及;对于“每个人”;元参数是互斥的,只能使用一个来明确说明要创建的资源数量,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,资源代码: resource "aws_kinesis_firehose_delivery_stream" "kinesis_firehose_to_s3" { count = "${var.fh_destination == s3 ? 1 : 0}" for_each = {for entity in var.entities : entity.name => entity} name = test
resource "aws_kinesis_firehose_delivery_stream" "kinesis_firehose_to_s3" {
count = "${var.fh_destination == s3 ? 1 : 0}"
for_each = {for entity in var.entities : entity.name => entity}
name = test_firehose
}
问题:我无法在创建terraform资源时同时使用以下两种语法。。但是分开工作
count = "${var.fh_destination == s3 ? 1 : 0}"
for_each = {for entity in var.entities : entity.name => entity}
要求:
fh\u目的地
=s3时,它才必须创建此kinesis\u firehose\u到\u s3
资源我假设在你的问题中,当你说
condition
时,你真正的意思是count
,因为condition
在Terraform中不是一个资源元参数
在count
表达式中,您根据某些条件在一个实例或零个实例之间进行选择。在for_each
中,我们通过更改for_each
映射中的元素数量来声明需要多少实例,因此for_each
中的等价物是根据相同的条件在空映射或非空映射之间进行选择
例如:
for_each = (
var.fh_destination == "s3" ?
{ for entity in var.entities : entity.name => entity } :
{}
)
使用上述条件表达式,如果
var.fh_destination==“s3”
,则结果将在var.entities
的每个元素中包含一个元素,否则结果将包含零个元素,因此实例为零,正在创建与条件的计数的0
臂相同的结果
很抱歉,这不是计数条件。。。
for_each = { for entity in var.entities : entity.name => entity}
for_each = (
var.fh_destination == "s3" ?
{ for entity in var.entities : entity.name => entity } :
{}
)