Terraform-provider-aws: aws_alb_target_group рд╕рдВрд▓рдЧреНрди рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЬреВрди 2017  ┬╖  33рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: hashicorp/terraform-provider-aws

_рдпрд╣ рдореБрджреНрджрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ @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

рдкреНрд░рднрд╛рд╡рд┐рдд рд╕рдВрд╕рд╛рдзрди

  • aws_alb_target_group
  • aws_alb_listener_rule

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

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"
  }
}

рд╕рднреА 33 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдЗрд╕рдореЗрдВ 0.9.8 рдХреЗ рд╕рд╛рде рднреА рджреМрдбрд╝ рд░рд╣рд╛ рд╣реВрдВ

@radeksimko рдпрд╣ рднреА рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдореБрджреНрджрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдВрдЧреЗ? рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рд╡рд┐рдирд╛рд╢ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП "рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╕рдВрд╕рд╛рдзрди" рдХреА рджреЛ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВред

  1. aws_alb_listener . рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ
  2. 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 рджрд┐рдиреЛрдВ_ рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

hashibot picture hashibot  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dvishniakov picture dvishniakov  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hashibot picture hashibot  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

reedloden picture reedloden  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

modax picture modax  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ