0Pricing
Terraform Infrastructure as Code · Pelajaran

Memfaktorkan Ulang State dengan moved dan removed

Ganti nama dan susun ulang sumber daya dengan aman tanpa menghancurkan infrastruktur menggunakan perintah manipulasi state serta blok deklaratif moved dan removed.

Memfaktorkan Ulang State dengan moved dan removed adalah pelajaran Terraform Infrastructure as Code gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Terraform Infrastructure as Code, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Terraform Infrastructure as Code mencakup 4 pelajaran total.

Masalah Penggantian Nama

Saat Anda mengganti nama sumber daya dalam konfigurasi, Terraform melihat bahwa alamat lama telah hilang dan alamat baru muncul. Secara bawaan, Terraform akan menghancurkan dan membuat ulang sumber daya tersebut, yang dapat menyebabkan waktu henti atau kehilangan data.

Alat refaktor status memungkinkan Anda memberi tahu Terraform bahwa sumber daya tersebut hanya berpindah.

Memeriksa Status

Mulailah dengan mencantumkan hal-hal yang terlacak dalam status. Perintah terraform state list menampilkan setiap alamat sumber daya yang dikelola.

terraform state list

state mv Imperatif

Pendekatan klasiknya adalah terraform state mv, yang menulis ulang alamat sumber daya dalam status. Di sini kita mengganti nama instans dari aws_instance.web menjadi aws_instance.app.

terraform state mv aws_instance.web aws_instance.app

Kekurangan state mv

state mv adalah tindakan CLI manual yang dilakukan satu kali. Tindakan ini tidak tercatat dalam kode, sehingga rekan satu tim yang menjalankan perubahan yang sama di komputer mereka harus mengulanginya. Hal ini rentan menyebabkan kesalahan dalam alur kerja kolaboratif.

Blok moved Deklaratif

Blok moved mencatat penggantian nama dalam konfigurasi Anda. Terraform menerapkannya secara otomatis untuk semua orang saat plan berikutnya, kemudian Anda dapat menghapus blok tersebut.

moved {
  from = aws_instance.web
  to   = aws_instance.app
}

Memindahkan ke Dalam Modul

Blok moved juga menangani pembungkusan sumber daya ke dalam modul. Alamat tujuan mencakup jalur modul.

moved {
  from = aws_instance.app
  to   = module.compute.aws_instance.app
}

Memverifikasi dengan Plan

Setelah menambahkan blok moved, jalankan terraform plan. Pemindahan yang benar tidak menampilkan penghancuran atau pembuatan, hanya perubahan alamat. Jika Anda masih melihat penggantian, berarti blok tersebut salah.

terraform plan

Menghapus dari Status

Terkadang Anda ingin Terraform berhenti mengelola sumber daya tanpa menghancurkan infrastruktur yang sebenarnya. Perintah imperatifnya adalah terraform state rm.

terraform state rm aws_instance.legacy

Blok removed Deklaratif

Terraform versi lebih baru mendukung blok removed. Dengan lifecycle { destroy = false }, Terraform melupakan sumber daya tersebut dari status, tetapi membiarkan infrastruktur sebenarnya tetap utuh.

removed {
  from = aws_instance.legacy

  lifecycle {
    destroy = false
  }
}

Memisahkan Berkas Status

Untuk proyek besar, terraform state mv -state-out dapat memindahkan sumber daya di antara berkas status terpisah. Ini berguna saat memisahkan monolit menjadi tumpukan yang diterapkan secara independen.

terraform state mv -state-out=network.tfstate \
  aws_vpc.main aws_vpc.main

Cadangan dan Keamanan

Terraform menulis berkas .backup sebelum mengubah status. Namun, dengan backend jarak jauh, selalu pastikan status tidak dikunci oleh rekan satu tim sebelum melakukan operasi manual untuk menghindari kerusakan.

Pemeriksaan Singkat

Uji pengetahuan Anda tentang refaktor.

Ringkasan: Refaktor Status yang Aman

Sekarang Anda dapat menyusun ulang infrastruktur tanpa menghancurkannya:

  • state mv / state rm untuk perubahan imperatif.
  • Blok moved untuk penggantian nama deklaratif.
  • Blok removed untuk melupakan sumber daya tanpa menghancurkannya.
  • Selalu verifikasi dengan plan yang tidak menampilkan penggantian.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Memfaktorkan Ulang State dengan moved dan removed” gratis?

Ya — teks lengkap “Memfaktorkan Ulang State dengan moved dan removed” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Terraform Infrastructure as Code, upgrade ke CoddyKit PRO. Kursus Terraform Infrastructure as Code mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Memfaktorkan Ulang State dengan moved dan removed”?

Ganti nama dan susun ulang sumber daya dengan aman tanpa menghancurkan infrastruktur menggunakan perintah manipulasi state serta blok deklaratif moved dan removed. Kamu berlatih Terraform Infrastructure as Code dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Terraform Infrastructure as Code?

Tidak diperlukan pengalaman sebelumnya. Terraform Infrastructure as Code di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Memfaktorkan Ulang State dengan moved dan removed” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Terraform Infrastructure as Code ini?

Ya. Setiap pelajaran Terraform Infrastructure as Code menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Backend State Jarak Jauh
  2. Penguncian dan Konsistensi State
  3. Mengimpor Resource yang Sudah Ada
  4. Memfaktorkan Ulang State dengan moved dan removed
← Kembali ke Terraform Infrastructure as Code