Middle
Terraform resurslarni qayta yaratishda qanday yondashuvni qo'llaydi?
sobes.tech AI
AIdan javob
Terraform "o‘ldirish va yaratish" (destroy and create) yondashuvini qo‘llaydi.
Agar to‘liq yangilash yoki o‘zgartirish zarur bo‘lsa va bu o‘rnatilgan joyda (in-place update) amalga oshirilmasa, Terraform quyidagi bosqichlarni bajaradi:
- Mavjud resursni o‘ldirish: Terraform resursni provayderning mos API chaqiruvini amalga oshirish orqali infratuzilma ichidan olib tashlaydi.
- Yangi resursni yaratish: Muvaffaqiyatli o‘chirishdan so‘ng, Terraform yangi parametrlar bilan yangi resurs nusxasini yaratadi.
Bu, Terraform konfiguratsiyasidagi o‘zgarishlar resursning to‘liq almashtirilishini talab qiladigan holatlarda yuzaga keladi. Masalan, bulutdagi subnet turini o‘zgartirish (jamoatdan maxfiyga), bu provayderning in-place yangilash bilan qo‘llab-quvvatlanmaydi. Terraform bu yondashuvning zarurligini terraform plan buyruqini bajarishda aniqlaydi. Reja chiqishida resursning o‘ldirilishi va qayta yaratilishi aniq ko‘rsatiladi.
// Ba’zi atributlar o‘zgarganda qayta yaratilishi mumkin bo‘lgan resurs misoli
resource "aws_instance" "example" {
ami = "ami-0abcdef1234567890" # AMI o‘zgartirish odatda qayta yaratishni talab qiladi
instance_type = "t2.micro" # Instans turini o‘zgartirish ham qayta yaratishni talab qilishi mumkin
subnet_id = "subnet-0123456789abcdef0" // Subnet ID o‘zgartirish deyarli har doim qayta yaratishni talab qiladi
tags = {
Name = "ExampleInstance"
}
}
terraform plan chiqishi, qayta yaratishni ko‘rsatuvchi misol:
Plan: 1 qo‘shish, 0 o‘zgartirish, 1 o‘chirish.
Terraform quyidagi harakatlarni bajaradi:
# aws_instance.example o‘chiriladi
- resource "aws_instance" "example" {
- ami = "ami-old-id" -> null
- arn = "arn:aws:ec2:..." -> null
... (boshqa atributlar)
}
# aws_instance.example yaratiladi
+ resource "aws_instance" "example" {
+ ami = "ami-new-id"
+ instance_type = "t2.micro"
+ subnet_id = "subnet-0123456789abcdef0"
... (boshqa atributlar)
}