Lompat ke konten
Aback Tools Logo

Apa yang Sebenarnya Diperiksa terraform validate?

terraform validate memeriksa sintaks HCL, kesesuaian skema provider, dan referensi internal - tetapi tidak nilai resource, state, atau izin. Lihat cakupan tepatnya.

DH
Tutorials & How-Tos12 menit baca2,700 kata

terraform validate adalah salah satu perintah pertama yang dipelajari pengguna Terraform, tetapi juga salah satu yang paling sering disalahpahami. Ia tidak terhubung ke provider cloud mana pun. Ia tidak memeriksa apakah nilai resource Anda valid di dunia nyata. Ia tidak melihat berkas state Anda. Yang dilakukannya cepat, aman, dan penting, tetapi memahami tepat di mana ia berhenti adalah perbedaan antara pipeline CI yang andal dan rasa aman palsu sebelum terraform apply.

0Panggilan API dibuatanalisis statis sepenuhnya offline
3Kategori pemeriksaansintaks, skema, referensi
< 2 sWaktu jalan tipikalpada sebagian besar konfigurasi nyata

Apa itu terraform validate

terraform validate adalah subperintah bawaan Terraform yang melakukan analisis statis pada berkas konfigurasi Anda. Ia membaca setiap berkas .tf dan .tfvars di direktori kerja saat ini (dan secara rekursif modul lokal apa pun), mengurainya, lalu memeriksa apakah konfigurasi konsisten secara internal dan valid secara struktur.

Analisis statis, bukan eksekusi

Ciri utama terraform validate adalah ia sepenuhnya statis. Tidak ada koneksi jaringan yang dibuat, tidak ada API provider yang dipanggil, dan tidak ada berkas state yang dibaca. Pemeriksaan terjadi sepenuhnya di memori pada mesin yang menjalankan perintah. Ini membuatnya aman dijalankan di lingkungan apa pun, termasuk runner CI tanpa kredensial cloud, dan selesai di bawah dua detik pada sebagian besar konfigurasi nyata.

Ini berbeda dari terraform plan, yang melakukan semua pemeriksaan statis yang sama lalu terhubung ke API provider untuk menghitung selisih terhadap infrastruktur nyata. Validate adalah filter pertama yang ringan; plan adalah filter menyeluruh sebelum penerapan. Menjalankan keduanya secara berurutan memberi cakupan terluas sebelum Anda menyetujui perubahan infrastruktur.

Note

terraform validate meningkat signifikan pada Terraform 0.12, ketika HCL2 menjadi bahasa konfigurasi. Sebelum 0.12, validasi dangkal dan banyak galat struktural baru muncul saat plan. Sejak 0.12, validate memiliki sistem tipe penuh dan pengetahuan skema, sehingga jauh lebih berguna sebagai pemeriksaan mandiri.

Tiga mode operasi

  • Mode default - berjalan setelah terraform init; memeriksa sintaks, skema terhadap plugin provider yang diunduh, dan referensi antar berkas
  • Tanpa init - jika direktori .terraform tidak ada, validate tetap berjalan tetapi melewati pemeriksaan skema provider dan hanya melaporkan galat parsing HCL serta masalah referensi yang bisa diselesaikan tanpa metadata provider
  • Mode JSON (-json) - mengeluarkan objek JSON terstruktur dengan boolean valid, bilangan bulat error_count, dan array diagnostics yang cocok untuk diproses CI dan integrasi editor

Apa yang sebenarnya diperiksa terraform validate

Memahami tiga kategori yang dicakup terraform validate membantu Anda tahu persis apa yang dijamin oleh validasi yang lolos, dan di mana jaminan itu berakhir.

1. Kebenaran sintaks HCL

Pass pertama mengurai setiap berkas .tf untuk sintaks HCL2 yang valid. Ini menangkap kurung kurawal yang tidak ditutup, tanda sama dengan yang hilang pada penetapan atribut, definisi blok yang tidak valid, penggunaan sintaks heredoc yang salah, dan konstruksi lain yang bukan HCL valid. Berkas yang gagal pada pemeriksaan ini tidak bisa dibaca Terraform sama sekali: plan dan apply juga akan gagal. Validate menangkap galat ini segera dengan path berkas dan nomor baris.

2. Kesesuaian dengan skema provider

Setelah parsing, validate memeriksa setiap blok resource, blok sumber data, dan konfigurasi provider terhadap skema yang didefinisikan plugin provider terkait. Skema menentukan argumen mana yang valid, mana yang wajib dan mana yang opsional, serta tipe apa yang diharapkan setiap argumen (string, number, bool, list, map, object). Validate menangkap argumen yang tidak ada untuk tipe resource tertentu, argumen dengan tipe salah (misalnya memberikan string padahal butuh number), dan argumen wajib yang sama sekali tidak ada.

Tip

Sebelum validate bisa memeriksa skema provider, Anda perlu menjalankan terraform init di direktori kerja. Init mengunduh plugin provider dan menyimpannya di direktori .terraform. Tanpa itu, validate tidak punya skema untuk dibandingkan dan akan melewati validasi pada tingkat resource. Alur CI standar selalu init → validate → plan.

3. Keabsahan referensi internal

Kategori ketiga adalah pemeriksaan referensi silang di dalam konfigurasi. Konfigurasi Terraform rutin mereferensikan resource lain, variabel, local, keluaran modul, dan sumber data berdasarkan nama. Validate memeriksa bahwa setiap referensi (misalnya var.region, local.common_tags, aws_vpc.main.id, module.networking.subnet_ids) menunjuk ke sesuatu yang benar-benar dideklarasikan di suatu tempat dalam konfigurasi. Variabel yang tidak dideklarasikan, salah ketik pada referensi resource, atau keluaran modul yang hilang akan tertangkap di sini.

Kategori pemeriksaanContoh galatPerlu init?
Galat parsing HCLKurung kurawal tidak ditutup pada baris 14Tidak
Argumen tidak dikenal"region" bukan argumen valid untuk aws_s3_bucketYa
Tipe argumen salahNilai tidak sesuai untuk atribut - diharapkan numberYa
Argumen wajib hilangArgumen "bucket" wajib diisiYa
Variabel tidak dideklarasikanResource terkelola hanya bisa merujuk variabel yang dideklarasikanTidak
Referensi resource tidak dideklarasikanReferensi ke resource yang tidak dideklarasikan "aws_vpc.typo"Tidak
Masukan modul hilangArgumen "vpc_id" wajib untuk module.networkYa

Apa yang tidak diperiksa terraform validate

Batas terraform validate sama pentingnya dengan cakupannya. Banyak pengembang mengetahui batas ini setelah konfigurasi yang lolos validasi gagal saat penerapan. Setiap kategori ini memerlukan terraform plan, uji integrasi, atau alat kebijakan seperti tflint atau Checkov.

Nilai argumen resource yang sebenarnya

Validate memeriksa bahwa argumen ada dan bertipe benar, tetapi tidak bisa memeriksa apakah nilainya valid di dunia nyata. Resource aws_instance bisa punya argumen ami berupa string (tipe benar), tetapi validate tidak punya cara mengetahui apakah AMI ID itu ada di akun atau region AWS Anda. AMI tidak valid, ID security group yang tidak ada, atau nama zona ketersediaan yang salah akan lolos validate dan hanya gagal di plan atau apply.

Berkas state dan infrastruktur yang sudah ada

Validate tidak pernah membaca berkas state Terraform Anda. Ia tidak bisa mendeteksi bahwa resource yang Anda definisikan berkonflik dengan yang sudah ada, bahwa sebuah resource dihapus di luar Terraform (pergeseran state), atau bahwa perubahan yang direncanakan melanggar batasan yang hanya bisa dievaluasi terhadap infrastruktur nyata saat ini. Semua itu urusan fase plan dan apply.

Ekspresi dinamis yang bergantung pada sumber data

Ekspresi count, for_each, dan kondisional adalah HCL valid dan validate mengurainya tanpa masalah. Tetapi jika nilainya bergantung pada sumber data (misalnya for_each = toset(data.aws_availability_zones.available.names)), ekspresi itu tidak bisa dievaluasi sepenuhnya saat validasi karena sumber data belum dikueri. Validate memastikan sintaks ekspresinya benar; ia tidak bisa memastikan hasil saat berjalan.

Autentikasi dan izin provider

Validate tidak membuat panggilan API sama sekali. Ia tidak akan mendeteksi bahwa kredensial AWS Anda kedaluwarsa, bahwa akun layanan Anda kurang izin IAM yang diperlukan, atau bahwa konfigurasi provider menunjuk region atau proyek yang salah. Semua galat autentikasi hanya muncul di fase plan atau apply, ketika klien provider benar-benar diinisialisasi dan panggilan dilakukan.

Warning

Lolos terraform validate tidak berarti konfigurasi Anda siap diterapkan. Artinya konfigurasi Anda benar secara sintaks dan valid menurut skema. Selalu lanjutkan validate dengan terraform plan, di lingkungan staging bila memungkinkan, sebelum menjalankan terraform apply di produksi.

Kebijakan keamanan dan aturan kepatuhan

Validate tidak punya konsep kebijakan keamanan. Bucket S3 yang dikonfigurasi publik, instans EC2 tanpa enkripsi, atau security group dengan ingress 0.0.0.0/0 pada port 22 semuanya akan lolos validate tanpa peringatan. Pemeriksaan keamanan dan kepatuhan memerlukan alat kebijakan khusus seperti Checkov, tfsec, atau HashiCorp Sentinel.

terraform validate vs terraform plan

Sumber kebingungan paling umum tentang terraform validate adalah bedanya dengan terraform plan. Keduanya banyak tumpang tindih tetapi bekerja pada level berbeda, dan keduanya diperlukan untuk alur lengkap sebelum penerapan.

terraform validate memeriksa apakah konfigurasi valid secara sintaks dan konsisten secara internal, terlepas dari variabel yang diberikan atau state yang ada.

- Dokumentasi HashiCorp Terraform

Di mana keduanya tumpang tindih

Kedua perintah mengurai berkas HCL Anda dan mencari galat sintaks. Keduanya memeriksa skema provider bila plugin provider tersedia. Keduanya memvalidasi referensi internal. Galat konfigurasi yang ditangkap terraform validate juga akan ditangkap terraform plan: validate hanya lebih cepat dan tidak memerlukan kredensial cloud atau backend state.

Di mana plan melangkah lebih jauh

terraform plan menginisialisasi klien provider, melakukan autentikasi ke API cloud, membaca state saat ini, dan mengueri sumber data. Ini memungkinkannya menangkap hal yang tidak bisa dilakukan validate: nilai argumen yang ditolak API provider, kueri sumber data dengan hasil tak terduga, galat kuota atau batas laju, dan konflik antara konfigurasi yang diusulkan dengan infrastruktur yang sudah ada di state.


Kemampuanterraform validateterraform plan
Pemeriksaan sintaks HCL✓ Ya✓ Ya
Pemeriksaan skema provider✓ Ya (setelah init)✓ Ya
Pemeriksaan referensi silang✓ Ya✓ Ya
Pemeriksaan nilai resource nyata✗ Tidak✓ Ya (lewat API)
Membaca berkas state✗ Tidak✓ Ya
Kueri sumber data✗ Tidak✓ Ya
Pemeriksaan autentikasi dan izin✗ Tidak✓ Ya
Pemeriksaan kebijakan keamanan✗ Tidak✗ Tidak (butuh tfsec/Checkov)
Memerlukan kredensial cloud✗ Tidak✓ Ya
Waktu jalan tipikal< 2 s5 s hingga beberapa menit

Note

Di pipeline CI, validate dan plan punya fungsi berbeda. Jalankan validate pada setiap commit pull request: cepat, tanpa kredensial, dan menangkap mayoritas kesalahan penulisan lebih awal. Jalankan plan di job terpisah yang punya akses kredensial staging, dipicu saat merge atau sebagai langkah persetujuan manual.

Cara menjalankan terraform validate

Menjalankan terraform validate itu sederhana, tetapi langkah di sekitarnya penting agar perintah ini memberi hasil maksimal.

1

Jalankan terraform init untuk mengunduh provider

Di direktori kerja Terraform Anda, jalankan terraform init. Ini mengunduh plugin provider yang didefinisikan pada blok required_providers dan menyimpannya di subdirektori .terraform. Tanpa init, validate melewati pemeriksaan skema provider dan hanya melakukan parsing HCL serta validasi referensi. Gunakan terraform init -backend=false di CI untuk melewati konfigurasi state jarak jauh saat kredensial tidak tersedia.

2

Jalankan terraform validate

Jalankan terraform validate di direktori yang sama. Perintah berakhir dengan kode 0 (lolos) atau 1 (gagal). Saat berhasil, ia mencetak «Success! The configuration is valid.». Saat gagal, ia mencetak setiap galat dengan path berkas, nomor baris dan kolom, serta deskripsi. Gunakan terraform validate -json untuk keluaran terstruktur pada skrip CI.

terminal
bash
# Validasi dasar
terraform validate

# Keluaran JSON untuk diproses di CI
terraform validate -json

# Contoh struktur keluaran JSON
{
  "valid": false,
  "error_count": 2,
  "diagnostics": [
    {
      "severity": "error",
      "summary": "Unsupported argument",
      "detail": "An argument named 'regoin' is not expected here. Did you mean 'region'?",
      "range": {
        "filename": "main.tf",
        "start": { "line": 8, "column": 3 }
      }
    }
  ]
}
3

Tinjau dan perbaiki galat yang dilaporkan

Setiap diagnostik mencakup path berkas dan nomor baris. Buka berkas yang ditandai dan lihat baris yang dilaporkan plus 3-5 baris di atasnya: galat HCL kadang muncul sedikit setelah kesalahan sebenarnya. Perbaikan umum meliputi memperbaiki nama argumen (salah ketik paling sering), menambahkan argumen wajib yang hilang, memperbaiki ketidakcocokan tipe (memberi tanda kutip pada angka yang seharusnya tanpa kutip), atau mendeklarasikan variabel yang dirujuk tetapi tidak didefinisikan.

4

Lanjutkan dengan terraform plan

Setelah validate lolos bersih, jalankan terraform plan di lingkungan dengan kredensial yang valid. Ini filter kedua yang menangkap masalah runtime yang tidak bisa dilihat validate: nilai resource tidak valid, galat izin, dan konflik dengan state infrastruktur. Kedua perintah bersama-sama mencakup seluruh permukaan validasi sebelum penerapan.

Format HCL

Normalkan indentasi HCL, jarak blok, dan perataan atribut di berkas Terraform Anda sebelum menjalankan validate - di browser, tanpa perlu mendaftar.

Open tool

terraform validate di CI/CD

terraform validate sangat cocok untuk pipeline CI karena tidak memerlukan kredensial cloud, berjalan dalam hitungan detik, dan menangkap sebagian besar kesalahan penulisan sebelum menghabiskan satu eksekusi plan atau sampai ke tinjauan kode. Pola standarnya adalah menjalankannya pada setiap pull request yang mengubah berkas .tf.

Contoh GitHub Actions

Workflow di bawah memasang Terraform, menjalankan init dengan -backend=false agar tidak butuh kredensial state, lalu menjalankan validate. Jika validate gagal, workflow berakhir dengan kode bukan nol dan memblokir pull request untuk di-merge.

.github/workflows/terraform-validate.yml
yaml
name: Terraform Validate

on:
  pull_request:
    paths:
      - '**.tf'
      - '**.tfvars'

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: hashicorp/setup-terraform@v3
        with:
          terraform_version: '1.8.0'

      - name: Terraform Init (no backend)
        run: terraform init -backend=false

      - name: Terraform Validate
        run: terraform validate -json | tee validate-output.json
        # Exit code 1 on any error - fails the workflow automatically

Tip

Memakai -backend=false berarti terraform init mengunduh plugin provider tanpa mencoba menginisialisasi backend state jarak jauh. Ini pola yang tepat untuk job CI pull request yang tidak boleh menyentuh berkas state bersama dan tidak punya kredensial backend.

Menggabungkan validate dengan tflint

tflint adalah linter yang menangkap masalah yang dilewatkan terraform validate: pemeriksaan aturan khusus provider (seperti tipe instans AWS yang tidak valid), deklarasi tidak terpakai, dan aturan kebijakan sendiri. Menjalankan tflint setelah validate di job CI yang sama memberi cakupan analisis statis lebih luas. tflint punya plugin aturan khusus untuk AWS, Azure, dan GCP yang memeriksa nilai argumen terhadap opsi valid yang diketahui, menangkap galat yang tidak bisa dijangkau pemeriksaan skema generik validate.

  • terraform fmt -check - memverifikasi kode mengikuti konvensi gaya Terraform (gagal jika ada berkas yang perlu diformat ulang)
  • terraform validate - memeriksa sintaks, kesesuaian skema, dan referensi internal
  • tflint - aturan khusus provider, deteksi variabel tidak terpakai, penerapan kebijakan sendiri
  • Checkov atau tfsec - pemindaian kebijakan keamanan dan kepatuhan
  • terraform plan - validasi runtime di lingkungan staging dengan kredensial nyata

Pemeriksa konvensi penamaan resource Terraform

Validasi label resource, modul, variabel, dan keluaran Terraform untuk gaya penamaan yang konsisten dan kepatuhan kebijakan - sepenuhnya di browser Anda.

Open tool

Praktik terbaik untuk validasi menyeluruh

terraform validate adalah fondasi, bukan langit-langit. Alur kerja Terraform yang matang menumpuk beberapa teknik validasi untuk menangkap kelas galat yang berbeda pada titik yang tepat dalam siklus pengembangan.

Format dulu, baru validasi

Jalankan terraform fmt sebelum validate di setiap alur, lokal maupun CI. Pemformatan HCL kanonis bukan hanya soal gaya: ia mencegah kasus tepi saat spasi atau penempatan komentar yang tidak konsisten menyembunyikan galat nyata pada keluaran parsing. Format HCL dari Aback Tools memberi normalisasi yang sama di browser tanpa perlu memasang Terraform, berguna untuk tinjauan cepat atau mengedit di mesin yang tidak bisa menjalankan terraform fmt.

Selalu init sebelum validate di CI

Menjalankan validate tanpa init hanya memberi analisis parsial: parsing HCL dan pemeriksaan referensi, tetapi tanpa validasi skema provider. Melewati pemeriksaan skema berarti Anda bisa merge konfigurasi yang memakai nama argumen dengan salah ketik atau meneruskan tipe salah ke atribut resource. Beberapa detik tambahan yang ditambahkan init -backend=false ke job CI sepadan dengan cakupannya.

Gunakan -json untuk keluaran CI terstruktur

Keluaran default validate yang mudah dibaca jelas untuk debugging lokal, tetapi keluaran JSON jauh lebih berguna di pipeline otomatis. Dengan -json, Anda bisa memproses array diagnostics untuk mengekstrak path berkas dan nomor baris, menganotasi diff pull request dengan komentar galat sebaris menggunakan API GitHub Checks, atau mengirim galat ke notifikasi Slack khusus. Periksa dulu boolean valid: jika true, array diagnostics masih bisa memuat peringatan yang layak ditampilkan.

Validasi setiap modul secara mandiri

terraform validate di modul root juga memeriksa modul lokal yang dipanggil, tetapi modul jarak jauh hanya diperiksa setelah init mengunduhnya. Untuk repositori modul, jalankan validate terpisah di setiap direktori modul selama pengembangan. Ini memunculkan galat skema pada modul itu sendiri sebelum konsumen mulai merujuknya.

Warning

Kesalahpahaman umum adalah terraform validate mencakup keamanan. Tidak. Konfigurasi Terraform yang sepenuhnya valid bisa menyediakan bucket penyimpanan yang dapat diakses publik, basis data tanpa enkripsi, atau peran IAM yang terlalu permisif. Selalu jalankan Checkov, tfsec, atau pemindai kebijakan serupa sebagai langkah terpisah setelah validate di pipeline CI Anda.

Jaga berkas .tf tetap terformat sebelum commit

Gunakan hook pre-commit yang menjalankan terraform fmt -check dan gagal jika ada berkas .tf yang tidak dalam format kanonis. Ini menjaga seluruh basis kode konsisten, menghindari diff yang hanya soal gaya pada tinjauan kode, dan membuat keluaran validate lebih mudah dibaca karena kodenya berstruktur rapi. Hapus komentar pengembangan dari konfigurasi produksi dengan Penghapus komentar Terraform HCL agar berkas yang di-commit tetap bersih dan mudah dibaca.

Key takeaways

  • terraform validate memeriksa sintaks HCL, kesesuaian skema provider, dan referensi silang internal - ia tidak membuat panggilan API dan tidak memerlukan kredensial cloud.
  • Anda harus menjalankan terraform init sebelum validate untuk mengaktifkan pemeriksaan skema provider; tanpa itu, validate melewati validasi argumen resource.
  • Validate tidak bisa menangkap nilai argumen yang tidak valid, pergeseran state, izin yang hilang, atau pelanggaran kebijakan keamanan - itu memerlukan terraform plan dan alat kebijakan khusus.
  • Flag -json mengeluarkan diagnostik terstruktur (valid, error_count, diagnostics[]) yang ideal untuk diproses CI, anotasi sebaris di PR, dan pipeline pelaporan sendiri.
  • Alur CI yang benar adalah: terraform fmt -check → terraform init -backend=false → terraform validate → tflint → terraform plan (di staging dengan kredensial).
  • Gunakan Format HCL dan Pemeriksa konvensi penamaan resource Terraform untuk kebersihan gaya dan penamaan sebelum validasi.
  • Lolos terraform validate tidak berarti konfigurasi siap diterapkan - artinya konfigurasi cukup benar secara sintaks dan struktur untuk lanjut ke plan.

Pertanyaan yang sering diajukan

terraform validate memeriksa tiga hal: kebenaran sintaks HCL (blok valid, sintaks atribut benar, tanpa galat parsing), kesesuaian skema (apakah atribut yang Anda pakai dikenali provider dan disetel dengan tipe yang kompatibel), dan keabsahan referensi internal (apakah setiap variabel, local, keluaran modul, dan referensi resource dideklarasikan di suatu tempat dalam konfigurasi). Ia tidak terhubung ke API provider mana pun, jadi tidak bisa memastikan apakah resource dengan argumen tersebut benar-benar ada atau bisa dibuat.

Ya, untuk validasi lengkap. Menjalankan terraform init mengunduh plugin provider dan definisi skemanya; tanpa itu, terraform validate tidak bisa memeriksa apakah argumen yang Anda pakai valid untuk tipe resource tertentu. Sejak Terraform 0.13, menjalankan validate tanpa init menghasilkan galat untuk konfigurasi yang mereferensikan provider. Jika ingin melewati pemeriksaan skema sepenuhnya (misalnya untuk pemeriksaan sintaks murni), terima keterbatasan itu, tetapi alur standarnya adalah init lalu validate.

terraform validate adalah langkah analisis statis murni: ia membaca berkas .tf Anda, memeriksa sintaks dan skema, lalu selesai tanpa menghubungi API provider mana pun. terraform plan melakukan semua pemeriksaan yang sama lalu terhubung ke API provider untuk menentukan perubahan apa yang benar-benar akan dilakukan. Plan menangkap hal yang tidak bisa dilihat validate: nilai argumen tidak valid (seperti nama region yang tidak ada), izin yang hilang, batas kuota, dan pergeseran state. Validate cepat dan aman untuk CI; plan memerlukan kredensial dan akses infrastruktur nyata.

Tidak. terraform validate menangkap galat struktural dan skema, tetapi melewatkan kelas galat runtime yang penting. Ia tidak akan menangkap AMI ID yang tidak valid pada instans AWS, nama bucket GCS yang melanggar aturan karakter, atau resource yang berkonflik dengan yang sudah ada di state. Ia juga tidak memvalidasi logika ekspresi count dan for_each jika bergantung pada sumber data atau nilai jarak jauh. Anggap validate sebagai filter pertama yang cepat: perlu, tetapi belum cukup untuk keyakinan penuh sebelum menerapkan.

Tambahkan job CI yang menjalankan terraform init lalu terraform validate. Gunakan action hashicorp/setup-terraform untuk memasang versi Terraform yang benar, jalankan init dengan -backend=false agar tidak perlu kredensial state, lalu validate. Langkah validate berakhir dengan kode bukan nol pada setiap galat, sehingga workflow gagal dan pull request diblokir. Pola ini menangkap galat sintaks HCL dan skema pada setiap commit tanpa memerlukan kredensial cloud di lingkungan CI.

Flag -json membuat terraform validate mengeluarkan objek JSON terstruktur alih-alih teks yang mudah dibaca. Objek itu memiliki boolean valid (true atau false), bilangan bulat error_count, dan array diagnostics. Setiap entri diagnostics berisi severity (error atau warning), ringkasan, string detail, dan objek range dengan filename, baris awal, dan baris akhir. Format ini ideal untuk diproses dalam skrip CI, diintegrasikan ke dasbor pelaporan sendiri, atau dipakai ekstensi editor yang menampilkan anotasi baris.

Ya, sebagian. terraform validate memeriksa bahwa blok pemanggilan modul mereferensikan sumber modul yang ada secara lokal atau bisa diselesaikan, bahwa variabel masukan wajib modul sudah diberikan, dan bahwa tipe yang diteruskan ke masukan modul kompatibel dengan deklarasi variabel di dalam modul. Ia tidak mengunduh modul jarak jauh saat validasi kecuali terraform init sudah mengunduhnya. Setelah init, sumber modul yang diunduh tersedia secara lokal dan bisa diperiksa sepenuhnya terhadap skema.

Alur kualitas Terraform yang lengkap menumpuk beberapa alat. terraform validate mencakup sintaks dan skema. terraform plan mencakup perilaku saat berjalan. tflint menambahkan pemeriksaan aturan khusus provider dan aturan kebijakan sendiri di luar yang ditegakkan validate. Checkov dan tfsec melakukan pemindaian kebijakan keamanan. Untuk pemformatan HCL dan konsistensi gaya sebelum itu semua, Format HCL dari Aback Tools menormalkan indentasi dan struktur blok, dan Pemeriksa konvensi penamaan resource Terraform memvalidasi label sesuai konvensi tim Anda.

ShareXLinkedIn