Middle
Koji pristup koristi Terraform prilikom ponovnog kreiranja resursa?
sobes.tech АИ
Одговор од АИ
Terraform koristi pristup "uništiti i kreirati" (destroy and create).
U slučaju potrebe za potpunim ažuriranjem ili izmenom resursa koji se ne može ažurirati na mestu (in-place update), Terraform izvršava sledeće korake:
- Uništavanje postojećeg resursa: Terraform uklanja resurs iz infrastrukture pozivom odgovarog API-ja provajdera.
- Kreiranje novog resursa: Nakon uspešnog brisanja, Terraform kreira novi primerak resursa sa novim parametrima.
Ovo se dešava kada promene u konfiguraciji Terraform zahtevaju potpuno zamenjivanje resursa. Na primer, promena tipa podmreže u oblaku (iz javne u privatnu), što nije podržano in-place ažuriranjem provajdera. Terraform određuje potrebu za ovim pristupom prilikom izvršavanja komande terraform plan. Izlaz plana će jasno naznačiti da će resurs biti uništen i ponovo kreiran.
// Primer resursa koji može biti ponovo kreiran pri promeni određenih atributa
resource "aws_instance" "example" {
ami = "ami-0abcdef1234567890" # Promena AMI obično zahteva ponovo kreiranje
instance_type = "t2.micro" # Promena tipa instance takođe može zahtevati ponovo kreiranje
subnet_id = "subnet-0123456789abcdef0" // Promena ID-ja podmreže gotovo uvek zahteva ponovo kreiranje
tags = {
Name = "ExampleInstance"
}
}
Primer izlaza terraform plan koji ukazuje na ponovo kreiranje:
Plan: 1 za dodavanje, 0 za izmenu, 1 za uništavanje.
Terraform će izvršiti sledeće radnje:
# aws_instance.example će biti uništen
- resource "aws_instance" "example" {
- ami = "ami-old-id" -> null
- arn = "arn:aws:ec2:..." -> null
... (ostali atributi)
}
# aws_instance.example će biti kreiran
+ resource "aws_instance" "example" {
+ ami = "ami-new-id"
+ instance_type = "t2.micro"
+ subnet_id = "subnet-0123456789abcdef0"
... (ostali atributi)
}