尝试在现有ALB规则中更改主机名时,请始终遇到错误:
"错误创建LB侦听器规则:PriorityInuse:Priority'40'当前正在使用"
从这里尝试了建议,但没有任何帮助。尝试使用create_before_destroy,名称的随机字符串等指定目标组的名称。
在随后的Terraform应用中,应用了更改。
TF配置:
resource "aws_lb_listener_rule" "rule1" {
depends_on = ["aws_lb_target_group.tg1"]
lifecycle {
create_before_destroy = true
}
listener_arn = "${aws_lb_listener.listener.arn}"
priority = "40"
action {
type = "forward"
target_group_arn = "${aws_lb_target_group.tg1.id}"
}
condition {
field = "host-header"
values = ["www.hostname.com"]
}
condition {
field = "path-pattern"
values = ["/STATIC"]
}
}
resource "aws_lb_target_group" "tg1" {
lifecycle {
create_before_destroy = true
}
port = "443"
protocol = "HTTPS"
vpc_id = "${var.vpc_id}"
health_check {
interval = "10"
path = "/"
port= "443"
protocol = "HTTPS"
timeout = "9"
healthy_threshold = "5"
unhealthy_threshold = "3"
}
tags {
Name = "${terraform.workspace}-service1"
}
}
我希望,一旦您更改Alb Rule中的主机名,Terraform就会无问题处理该更改,但看起来它试图用新的主机名重新创建ALB Rule,但具有相同的优先级号,因此失败了。运行Terraform再次应用后,它进行了更改。
可能会有解决方法可以检查现有的ALB规则优先级名称并指定一个新的/不同的名称,但应像Terraform一样在本地进行处理,否则我们需要跟踪优先级数字以避免冲突。
。有人有相同的问题并以某种方式解决了吗?
预先感谢。
事实证明,由于我正在提供新的ALB规则资源的方式,问题正在发生;每次我使用新的资源名称(Rule2,Rule 3等(创建TF ALB规则资源时,它与现有优先级数字发生冲突。因此,解决方案是在新资源中具有新的优先级号,或者每次(规则1(将资源名称保持相同,在这种情况下,Terraform正确处理更改。