Middle
Ի՞նչ մոտեցում է օգտագործում Terraform ռեսուրսները վերականգնելու ժամանակ։
sobes.tech AI
Պատասխան AI-ից
Terraform օգտագործում է «կործանել և ստեղծել» մոտեցումը:
Եթե անհրաժեշտ է ամբողջական թարմացում կամ փոփոխություն ռեսուրսում, որը հնարավոր չէ տեղում թարմացնել, Terraform-ը կատարում է հետևյալ քայլերը:
- Նշանավոր ռեսուրսի ոչնչացում: Terraform-ը հեռացնում է ռեսուրսը ինֆրակառուցվածքից՝ օգտագործելով համապատասխան API-ները:
- Նոր ռեսուրսի ստեղծում: Հաջողակ ոչնչացումից հետո 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"
... (մնացած հատկանիշները)
}