Lokal Terraform
Lokal Terraform adalah fitur yang kuat yang memungkinkan penugasan nama pada ekspresi, sehingga memungkinkan pengembang menggunakan nama tersebut beberapa kali dalam sebuah modul daripada menuliskan seluruh ekspresi secara berulang. Fitur ini sangat meningkatkan keberbacaan dan kemudahan pemeliharaan kode Terraform, sehingga memudahkan pengembang dalam mengelola konfigurasi infrastruktur mereka.
Pendeklarasian Lokal Terraform
Dalam Terraform, lokal dideklarasikan dalam blok locals
, di mana setiap nilai lokal diberikan nama dan ekspresi. Struktur dasar dari pendeklarasian lokal terlihat seperti ini:
locals {
local_name = expression
}
Mengelompokkan Nilai Lokal yang Terkait
Untuk organisasi dan keberbacaan yang lebih baik, nilai lokal yang terkait dapat dideklarasikan bersama dalam blok locals
yang sama. Pendekatan ini sangat berguna ketika bekerja dengan modul yang kompleks di mana banyak nilai lokal digunakan:
locals {
service_name = "forum"
owner = "Community Team"
}
Merujuk Nilai Lain dalam Ekspresi Lokal
Salah satu fitur kuat dari lokal Terraform adalah kemampuannya untuk merujuk nilai lain dalam ekspresi lokal. Ini termasuk variabel, atribut resource, dan bahkan nilai lokal lainnya. Kemampuan ini untuk merujuk dan menggunakan nilai lain memungkinkan transformasi dan kombinasi yang lebih kompleks, membantu dalam membuat konfigurasi infrastruktur yang rumit dan nuansa.
locals {
instance_ids = concat(aws_instance.blue.*.id, aws_instance.green.*.id)
}
Menggunakan Nilai Lokal dalam Terraform
Setelah nilai lokal dideklarasikan, dapat dirujuk dalam ekspresi menggunakan sintaks local.<NAMA>
. Sintaks ini memungkinkan Terraform untuk membedakan antara nilai lokal dan jenis ekspresi lainnya.
Berikut contoh cara merujuk nilai lokal dalam blok resource
:
resource "aws_instance" "example" {
tags = local.common_tags
}
Ruang Lingkup Variabel Lokal
Perlu diperhatikan bahwa lokal hanya dapat diakses dalam ekspresi dalam modul di mana mereka dideklarasikan. Pembatasan ruang lingkup ini membantu menjaga kode yang bersih dan terorganisir, serta menghindari konflik potensial antara modul yang berbeda atau modul yang bersarang.
Kapan Menggunakan Nilai Lokal
Nilai lokal dalam Terraform sangat bermanfaat ketika Anda perlu menghindari pengulangan nilai atau ekspresi yang sama dalam konfigurasi Anda. Namun, mereka tidak dimaksudkan untuk menggantikan setiap nilai yang diulang. Sebaliknya, mereka dirancang untuk mengurangi redundansi dalam situasi di mana satu nilai atau hasil digunakan di beberapa tempat dan kemungkinan akan diubah di masa depan.
Referensi