Terraform Dependes_on resource在父资源计数为零时仍尝试运行

Terraform Dependes_on resource在父资源计数为零时仍尝试运行,terraform,Terraform,当aws_lb资源的计数为0时,aws_lb资源仍然尝试运行,即使它被配置为依赖于aws_lb资源。当aws_lbcount为0时,如何防止其运行var.create_lb设置为false,因此计数应为0 这就是错误: on ../modules/vpc/nlb.tf line 31, in resource "aws_lb_listener" "listener": 31: load_balancer_arn = aws_lb.myNLB[0

aws_lb
资源的计数为0时,
aws_lb
资源仍然尝试运行,即使它被配置为依赖于
aws_lb
资源。当
aws_lb
count为0时,如何防止其运行
var.create_lb
设置为false,因此计数应为0

这就是错误:

  on ../modules/vpc/nlb.tf line 31, in resource "aws_lb_listener" "listener":
  31:   load_balancer_arn = aws_lb.myNLB[0].arn
    |----------------
    | aws_lb.myNLB is empty tuple

The given key does not identify an element in this collection value.
向侦听器添加
count
仍会产生错误

以下是部分代码:

resource "aws_lb" "myNLB" {
  depends_on = [
    data.aws_vpc.vpc_id,
    data.aws_subnet_ids.public_subnet_ids,
  ]

  count = var.create_lb ? 1 : 0
  name = "myNLB"
  internal = false
  load_balancer_type = "network"
  subnets = data.aws_subnet_ids.public_subnet_ids.ids

  tags = {
    Name = "myNLB"
  }
}

resource "aws_lb_listener" "listener" {
  depends_on = [
    aws_lb.myNLB,
    aws_lb_target_group.nlb_tg_port_80,
  ]

  load_balancer_arn = aws_lb.myNLB[0].arn
  port = "80"
  protocol = "TCP"

  default_action {
    type = "forward"
    target_group_arn =  aws_lb_target_group.nlb_tg_port_80.arn
  }
}

我明白了。我必须删除
terraform.tfstate
文件和
.terraform
目录以进行清理,然后再次运行


由于旧的
terraform.tfstate
文件,使用
侦听器的计数仍然产生错误。卸下后,它开始正常工作。

您能不能只
count=var.create\u lb?1:0
对于监听者来说也是如此吗?找到了答案。我也已经尝试过对listener使用count,但仍然产生错误。删除
tfstate
文件后,它工作正常。我现在正在尝试应用更改,因为
地形平面图
没有产生任何错误