Middle
Millist lähenemist kasutab Terraform ressursside uuesti loomisel?
sobes.tech AI
Vastus AI-lt
Terraform kasutab lähenemist "hävitada ja luua":
Kui on vaja täielikku uuendamist või muutust ressursil, mida ei saa kohapeal uuendada, teeb Terraform järgmised sammud:
- Olemasoleva ressursi hävitamine: Terraform eemaldab ressursi infrastruktuurist, kasutades vastavat API:
- Uue ressursi loomine: Pärast edukat hävitamist loob Terraform uue ressursi uute parameetritega:
See toimub siis, kui Terraformi konfiguratsiooni muudatused nõuavad ressursi täielikku asendamist. Näiteks alamvõrgu tüübi muutmine (avalikust privaatseks), mida ei toetata kohapealse uuendamisega. Terraform määrab ise, millal seda lähenemist kasutada, täites terraform plan. Plaani tulemus näitab selgelt, et ressurss hävitatakse ja luuakse uuesti:
// Näide ressursist, mida võib ümber ehitada, muutes teatud atribuute
resource "aws_instance" "example" {
ami = "ami-0abcdef1234567890" # AMI muutmine nõuab tavaliselt ümber ehitamist
instance_type = "t2.micro" # Tüübi muutmine võib samuti nõuda ümber ehitamist
subnet_id = "subnet-0123456789abcdef0" // Subnet ID muutmine nõuab peaaegu alati ümber ehitamist
tags = {
Name = "ExampleInstance"
}
}
terraform plan tulem näitab ümber ehitamist:
Plan: 1 to add, 0 to change, 1 to destroy.
Terraform teostab järgmised toimingud:
# aws_instance.example hävitatakse
- resource "aws_instance" "example" {
- ami = "ami-old-id" -> null
- arn = "arn:aws:ec2:..." -> null
... (teised atribuudid)
}
# aws_instance.example luuakse uuesti
+ resource "aws_instance" "example" {
+ ami = "ami-new-id"
+ instance_type = "t2.micro"
+ subnet_id = "subnet-0123456789abcdef0"
... (teised atribuudid)
}