_рдпрд╣ рдореБрджреНрджрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ @AlexShuraits рджреНрд╡рд╛рд░рд╛ рд╣реИрд╢рд┐рдХреЙрд░реНрдк /рдЯреЗрд░рд╛рдлреЙрд░реНрдо#13076 рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕реЗ рдкреНрд░рджрд╛рддрд╛ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣рд╛рдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрджреНрджреЗ рдХрд╛ рдореВрд▓ рднрд╛рдЧ рдиреАрдЪреЗ рд╣реИред_
рдирдорд╕реНрддреЗ,
рдореИрдВрдиреЗ aws_alb_target_group рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдирдП рд╕рдВрд╕рд╛рдзрди рдХреЛ рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИред
рдерд╛рди рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордпред рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
Error deleting Target Group: ResourceInUse: Target group 'xxxx' is currently in use by a listener or a rule
status code: 400, request id: 747913f1-1213-11e7-916c-3f605d5e091b
рддреЛ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╢реНрд░реЛрддрд╛ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдпрд╣реА рдХрд┐рдпрд╛ рд╣реИред
рдЯреЗрд░рд╛рдлреЙрд░реНрдо v0.9.1
рдореИрдВ рдЗрд╕рдореЗрдВ 0.9.8 рдХреЗ рд╕рд╛рде рднреА рджреМрдбрд╝ рд░рд╣рд╛ рд╣реВрдВ
@radeksimko рдпрд╣ рднреА рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдореБрджреНрджрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдВрдЧреЗ? рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рд╡рд┐рдирд╛рд╢ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП "рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╕рдВрд╕рд╛рдзрди" рдХреА рджреЛ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВред
aws_alb_listener
. рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИaws_alb_listener_rule
. рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛рдореИрдВ "force_destroy" рдЬреИрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ, рд╢реНрд░реЛрддрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдирд┐рдпрдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рд╕рднреА рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░реЛрдВ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░реЗрдВред рдХрд┐рд╕реА рдирд┐рдпрдо рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдз рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдирд┐рдпрдо рднреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд╕реЗ рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЕрдЧрд▓рд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ target
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред
рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ @radeksimko?
BTW рдпрд╣ рдореБрджреНрджрд╛ рдкрд┐рдЫрд▓реЗ рдЯреНрд░реИрдХрд░реНрд╕ рдореЗрдВ рд╢реАрд░реНрд╖ рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ред :)
0.9.11 . рдореЗрдВ рд╕рдорд╛рди
рдореИрдВрдиреЗ рдЬреЛрдбрд╝рд╛
lifecycle {
create_before_destroy = true
}
рд╢реНрд░реЛрддрд╛ рдФрд░ рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреБрди: рдЖрд╡реЗрджрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдХреНрд╖рдо рдерд╛ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕рдиреЗ рдЪрд╛рд▓ рдЪрд▓реАред
@spanktar рдРрд╕рд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХрд╛ рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдирд╛рдо рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдХреЗ рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЖрдк рдкреБрд╖реНрдЯрд┐ рдпрд╛ рдЗрдирдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдпрджрд┐ рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ рддреЛ @spanktar рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
@varjoinen рдЖрдкрдХреЛ create_before_destroy рдХреЗ рд╕рд╛рде name_prefix рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
@ hoffmannliu-ayla рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ https://github.com/terraform-providers/terraform-provider-aws/issues/1301
рдЖрдк рдЬреАрд╡рдирдЪрдХреНрд░ рдиреАрддрд┐ рдореЗрдВ create_before_destroy
рдХреЗ рд╕рд╛рде рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рд╕рдВрд╕рд╛рдзрди рдЖрдИрдбреА рдореЗрдВ random_id|pet
рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрди рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЖрдИрдбреА рдкрд░ рд░рдЦрд╡рд╛рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрдХреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рд╕рдорд╛рдзрд╛рдиред
@GrantSheehan рдЬрд┐рд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдзрдиреНрдпрд╡рд╛рджред рднрдпрд╛рдирдХ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрди рдХрд┐рдпрд╛:
resource "random_string" "target_group" {
length = 8
special = false
}
resource "aws_lb_target_group" "preview" {
# Target group names conflict on update, hence the random
name = "my-name-${random_string.target_group.result}"
...
lifecycle {
create_before_destroy = true
ignore_changes = ["name"]
}
}
рд░рдЦрд╡рд╛рд▓реЗ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
@hraban рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдЗрд╕реЗ рдореЗрд░реЗ рдЕрдВрдд рдореЗрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рддреНрд░реБрдЯрд┐ рд╣реИ
aws_alb_target_group.blabla-tg: aws_alb_target_group.blabla-tg: рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рджреМрд░рд╛рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗред рдпрд╣ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдПрдХ рдмрдЧ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЧрд┐рдЯрд╣рдм рдЗрд╢реНрдпреВ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдареАрдХ рд╣реИ, рд╣рдореЗрдВ рдЕрдкрдиреА рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рдЧрддрд┐ рдкрд░ рдЕрдкрдбреЗрдЯ рд░рдЦреЗрдВ!
@hraban рдХрд╛ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП 11.1.0 . рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ
*(рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЖрд╡реЗрджрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рдирд┐рдпрдореЛрдВ/рд╕рдВрд▓рдЧреНрдирдХреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рдерд╛ - рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ)
-- рдореЗрд░реЗ рдЪреЗрд╣рд░реЗ рдХреЛ рдореЗрдЬ рдкрд░ рдкрдЯрдХрдиреЗ рд╕реЗ рдЪреЛрдЯ рд░реБрдХ рдЬрд╛рддреА рд╣реИ --
name
рдХреЛ tags
рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдФрд░ create_before_destroy
рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред
resource "aws_alb_target_group" "test" {
lifecycle {
create_before_destroy = true
}
port = "8081"
protocol = "HTTP"
vpc_id = "${var.vpc_id}"
tags {
Name = "test"
}
}
рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://www.terraform.io/docs/providers/random/r/id.html рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╛рдпрд╛, рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдирдпрд╛ рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдмрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо lifecycle
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде create_before_destroy
рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрджрд┐ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдирд╛рдо рд╕реНрдерд┐рд░ рд╣реИ, рддреЛ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рд╣рдорд╛рд░рд╛ рдирд╛рдо рдЯрдХрд░рд╛рд╡ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, рдЬрдм рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрджрд▓реА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдПрдХ рдирдП рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдмрд╛рдзреНрдп рдХрд░рддреА рд╣реИред рдЙрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ https://github.com/terraform-providers/terraform-provider-aws/blob/master/aws/resource_aws_lb_target_group.go#L48 рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рд╛рд░рдЧрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЗрдирд▓рд╛рдЗрди рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рдЗрдирд▓рд╛рдЗрди рдХреЛ рдХреИрд╕реЗ рддрдп рдХрд┐рдпрд╛ред
locals {
LB-name = "${terraform.workspace}-LB"
LB-protocol = "HTTP"
LB-vpc-id = "${var.vpc-id}"
LB-target-type = "ip"
}
resource "random_id" "LB" {
keepers {
name = "${local.LB-name}"
protocol = "${local.LB-protocol}"
vpc_id ="${local.LB-vpc-id}"
target_type = "${local.LB-target-type}"
}
byte_length = 4
}
resource "aws_lb_target_group" "LB" {
name = "${local.LB-name}-${random_id.LB.hex}"
port = 9292
protocol = "${local.LB-protocol}"
vpc_id ="${local.LB-vpc-id}"
target_type = "${local.LB-target-type}"
lifecycle {
create_before_destroy = true
}
}
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ name
, protocol
, vpc_id
рдФрд░ target_type
рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓рддреЗ рдЧреБрдг рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдмрджрд▓рд╛ рдЧрдпрд╛ рддреЛ рдПрдХ рдирдпрд╛ рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рдЪрд░реЛрдВ рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░рдЦрд╡рд╛рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ random_id
рд╕рдВрд╕рд╛рдзрди рдореЗрдВ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ - рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмреАрдЪ рдкрдврд╝рддрд╛ рд╣реИ "рдпрджрд┐ рд░рдЦрд╡рд╛рд▓реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдХреЛрдИ рднреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИ, рддреЛ random_id рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдерд┐рд░ рд░рд╣рддрд╛ рд╣реИ"ред рдореИрдВрдиреЗ рдЬрд╛рди-рдмреВрдЭрдХрд░ рдХреАрдкрд░ рдореИрдк (рдФрд░ рд╕реНрдерд╛рдиреАрдп рдЪрд░) рдореЗрдВ port
рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдирдП рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЬрдЧрд╣ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ рдореИрдВ target_groups рдирд╛рдо рдХреЗ рдЕрдВрджрд░ random_id.LB.hex
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддрд╛рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдХреАрдкрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдХрд╛ рдирд╛рдо рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдЯрдХрд░рд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╕рдорд╛рдзрд╛рди рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕реЗ рдкреНрд░рджрд╛рддрд╛ рдпрд╛ рдХреЛрд░ рдХреЗ рдЕрдВрджрд░ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд╕рдорд╛рдзрд╛рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рднреА рд╕рд╛рд░рдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдФрд░ рдлрд┐рд░ рдПрдХ рдЯреЗрд░рд╛рдлреНрд░реЙрдо рдпреЛрдЬрдирд╛/рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред
${substr(uuid(),0, 3)}
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
resource "aws_lb_target_group" "preview" {
# Target group names conflict on update, hence the random
name = "my-name-${${substr(uuid(),0, 3)}}"
...
lifecycle {
create_before_destroy = true
ignore_changes = ["name"]
}
}
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 3 рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛рдЯрдиреЗ рдХрд╛ рдПрдХ рдмрд┐рдВрджреБ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдЙрд╕ рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдкрд░ рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдЕрднреА рднреА 0.11.13 . рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ
рдФрд░ рдЕрднреА рднреА 0.12.3 . рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ
рдореИрдВрдиреЗ рдпреВрдпреВрдЖрдИрдбреА рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рдмрджрд▓реА рд╣реИрдВ рдФрд░ рдореИрдВ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрддрд╛ рдХрд┐ рдХреИрд╕реЗред
рдореБрдЭреЗ рдЕрдм рддрдХ random_integer
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдЪреНрдЫреА рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА рд╣реИ, рдЬреЛ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рдорд╛рди рд╣реИред рдореИрдВ рд░рдЦрд╡рд╛рд▓реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЦреАрдВрдЪрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред
resource "random_integer" "web_target_group_id" {
min = 1
max = 999
keepers = {
port = "${local.web_port}"
protocol = "HTTP"
vpc_id = "${var.vpc_id}"
}
}
resource "aws_lb_target_group" "web" {
name = "foo-web-${random_integer.web_target_group_id.result}"
port = "${random_integer.web_target_group_id.keepers.port}"
protocol = "${random_integer.web_target_group_id.keepers.protocol}"
vpc_id = "${random_integer.web_target_group_id.keepers.vpc_id}"
lifecycle {
create_before_destroy = true
}
# ...etc
}
рдЗрд╕реЗ v0.12.4 . рдореЗрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ
рдЗрд╕реЗ v0.12.8 . рдореЗрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ
рдЗрд╕реЗ v0.12.9 . рдореЗрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ
рдЗрд╕реЗ v0.12.10 . рдореЗрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ
рдпрд╣ рдорд╛рдорд▓рд╛ рдЕрдм рддреАрди рд╕рд╛рд▓ рдкреБрд░рд╛рдирд╛ рд╣реИред
рдореБрдЭреЗ рдпрд╣ рдЯреЗрд░рд╛рдлреЙрд░реНрдо v0.12.24 рдФрд░ рдкреНрд░рджрд╛рддрд╛.aws v2.58.0 рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред
v0.12.24 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛:
рддреНрд░реБрдЯрд┐: рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдХреЛ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐: ResourceInUse: рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ ' arn:aws :elasticload рд╕рдВрддреБрд▓рди:XXXXXXXXXXXX ' рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╢реНрд░реЛрддрд╛ рдпрд╛ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ
рд╕реНрдерд┐рддрд┐ рдХреЛрдб: 400, рдЕрдиреБрд░реЛрдз рдЖрдИрдбреА: XXXXXXXX
рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рдХрд╛рд░реНрдп рд╣реИ? рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рд╣реИред
рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдПрдкреАрдЖрдИ рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдХреЛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬрдм рдЗрд╕рдореЗрдВ рд╢реНрд░реЛрддрд╛ рдирд┐рдпрдо рд╕рдВрд▓рдЧреНрди рд╣реЛрддрд╛ рд╣реИред рдЬрдм рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдкрд░ рдкреЛрд░реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдмрджрд▓реА рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдХрд╣рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдЬрдм рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрди рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЛ рднреА рд╣рдЯрд╛ рджреЗрдВ", рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ ред
name
рддрд░реНрдХ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, aws_alb_target_group
name_prefix
$ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ рддреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╛рдо рднреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ https://github.com/terraform-providers/terraform-provider-aws/issues/636#issuecomment -397459646 рдореЗрдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирд╛рдо рдХреЛ Name
рдЯреИрдЧ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред name_prefix
рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓рдХреНрд╖реНрдп рд╕рдореВрд╣ рдирд╛рдореЛрдВ рдкрд░ рд▓рдВрдмрд╛рдИ рд╕реАрдорд╛ рдХреЗ рдХрд╛рд░рдг, рдЙрдкрд╕рд░реНрдЧ рдХреЗрд╡рд▓ рдЫрд╣ рд╡рд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдирд╛рдореЛрдВ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП random
рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рднреА рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдЪрдХреНрд░ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП lifecycle { create_before_destroy = true }
рд╕реЗрдЯ рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдПрдкреАрдЖрдИ рдХреА рдПрдХ рд╕реАрдорд╛ рд╣реИ рдФрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкреНрд░рджрд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реЗ рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
aws_alb_target_group . рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдФрд░ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдЗрд╕реЗ рдкрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ _30 рджрд┐рдиреЛрдВ_ рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
name
рдХреЛtags
рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдФрд░create_before_destroy
рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред