Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform ";计数“;及;对于“每个人”;元参数是互斥的,只能使用一个来明确说明要创建的资源数量_Terraform_Terraform Provider Aws - Fatal编程技术网

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 } :
        {}
      )