Sobes.tech
Middle

Ի՞նչ մոտեցում է օգտագործում Terraform ռեսուրսները վերականգնելու ժամանակ։

sobes.tech AI

Պատասխան AI-ից

Terraform օգտագործում է «կործանել և ստեղծել» մոտեցումը:

Եթե անհրաժեշտ է ամբողջական թարմացում կամ փոփոխություն ռեսուրսում, որը հնարավոր չէ տեղում թարմացնել, Terraform-ը կատարում է հետևյալ քայլերը:

  1. Նշանավոր ռեսուրսի ոչնչացում: Terraform-ը հեռացնում է ռեսուրսը ինֆրակառուցվածքից՝ օգտագործելով համապատասխան API-ները:
  2. Նոր ռեսուրսի ստեղծում: Հաջողակ ոչնչացումից հետո Terraform-ը ստեղծում է նոր ռեսուրս՝ նոր պարամետրերով:

Սա տեղի է ունենում, երբ Terraform կոնֆիգուրացիայի փոփոխությունները պահանջում են ռեսուրսի ամբողջական փոխարինում։ Օրինակ՝ ենթակառուցվածքի տիպի փոփոխություն (հանրայինից մասնավոր), որը չի աջակցվում տեղում թարմացմամբ։ Terraform-ը ինքն է որոշում նման մոտեցման անհրաժեշտությունը terraform plan հրամանի ժամանակ։ Պլանի արդյունքում կհայտարարվի, որ ռեսուրսը ոչնչացվելու և նորից ստեղծվելու է:

// Օրինակ ռեսուրս, որը կարող է վերանորոգվել որոշ հատկանիշների փոփոխության դեպքում
resource "aws_instance" "example" {
  ami           = "ami-0abcdef1234567890" # AMI-ի փոփոխությունը սովորաբար պահանջում է վերանորոգում
  instance_type = "t2.micro"           # Տիպի փոփոխությունը նույնպես կարող է պահանջել վերանորոգում
  subnet_id     = "subnet-0123456789abcdef0" // Subnet ID-ի փոփոխությունը գրեթե միշտ պահանջում է վերանորոգում

  tags = {
    Name = "ExampleInstance"
  }
}

terraform plan արդյունքի օրինակ, որը ցույց է տալիս վերանորոգումը՝

Plan: 1 to add, 0 to change, 1 to destroy.

Terraform-ը կատարելու է հետևյալ գործողությունները:

  # aws_instance.example ոչնչացվելու է
  - resource "aws_instance" "example" {
      - ami                    = "ami-old-id" -> null
      - arn                    = "arn:aws:ec2:..." -> null
      ... (մնացած հատկանիշները)
    }

  # aws_instance.example նորից ստեղծվելու է
  + resource "aws_instance" "example" {
      + ami           = "ami-new-id"
      + instance_type = "t2.micro"
      + subnet_id     = "subnet-0123456789abcdef0"
      ... (մնացած հատկանիշները)
    }