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
文件后,它工作正常。我现在正在尝试应用更改,因为地形平面图
没有产生任何错误