Middle
Terraform resurslarını yenidən yaratarkən hansı yanaşmadan istifadə edir?
sobes.tech Süni İntellekt
AI-dan cavab
Terraform "yandır və yarat" (destroy and create) yanaşmasını istifadə edir.
Tam yeniləmə və ya dəyişiklik lazım olan və yerində (in-place update) yenilənə bilməyən resurs üçün Terraform aşağıdakı addımları yerinə yetirir:
- Mövcud resursu məhv etmək: Terraform, müvafiq provayderin API çağırışını həyata keçirərək resursu infrastrukturdan silir.
- Yeni resurs yaratmaq: Uğurlu silinmədən sonra, Terraform yeni parametrlərlə yeni resurs nümunəsini yaradır.
Bu, Terraform konfiqurasiyasındakı dəyişikliklərin resursun tam dəyişdirilməsini tələb etdiyi hallarda baş verir. Məsələn, buludda subnet növünü dəyişmək (ictimaiyə xüsusi, özələ keçid), bu, provayderin yerində yeniləməsi ilə dəstəklənmir. Terraform bu yanaşmanın lazım olduğunu terraform plan əmri icra edilərkən müəyyən edir. Plan çıxışında resursun məhv ediləcəyi və yenidən yaradılacağı açıq şəkildə göstəriləcək.
// Bəzi atributların dəyişdirilməsi zamanı yenidən yaradılması mümkün olan resurs nümunəsi
resource "aws_instance" "example" {
ami = "ami-0abcdef1234567890" # AMI dəyişdirmək adətən yenidən yaratmağı tələb edir
instance_type = "t2.micro" # İstifadə növünü dəyişdirmək də yenidən yaratmağı tələb edə bilər
subnet_id = "subnet-0123456789abcdef0" // Subnet ID dəyişdirmək demək olar ki, hər zaman yenidən yaratmağı tələb edir
tags = {
Name = "ExampleInstance"
}
}
terraform plan çıxışında yenidən yaradılma göstəricisi nümunəsi:
Plan: 1 əlavə etmək, 0 dəyişdirmək, 1 məhv etmək.
Terraform aşağıdakı əməliyyatları həyata keçirəcək:
# aws_instance.example məhv ediləcək
- resource "aws_instance" "example" {
- ami = "ami-old-id" -> null
- arn = "arn:aws:ec2:..." -> null
... (digər atributlar)
}
# aws_instance.example yaradılacaq
+ resource "aws_instance" "example" {
+ ami = "ami-new-id"
+ instance_type = "t2.micro"
+ subnet_id = "subnet-0123456789abcdef0"
... (digər atributlar)
}