Kaidah Penamaan
Last updated
Last updated
Gunakan _
(garis bawah) daripada -
(tanda hubung) dimana saja (nama sumber daya, nama sumber data, nama variabel, keluaran, dan lain-lain)
Pilihlah penggunaan huruf kecil dan angka (walaupun ada dukungan UTF-8)
Hindari mengulang jenis sumber daya pada nama sumber daya (baik itu sebagian atau sepenuhnya):
resource "aws_route_table" "public" {}
resource "aws_route_table" "public_route_table" {}
resource "aws_route_table" "public_aws_route_table" {}
Sumber daya sebaiknya dinamakan this
jika tidak tersedia nama lain yang lebih deskriptif dan umum, atau jika modul sumber daya menciptakan sumber daya tunggal dari tipe tersebut. Sebagai contoh pada terdapat sebuah sumber daya dengan tipe aws_nat_gateway
dan beberapa sumber daya dengan tipe aws_route_table
. Maka dari itu sumber daya aws_nat_gateway
sebaiknya dinamakan this
dan aws_route_table
diberi nama yang lebih deskriptif seperti privat
, publik
, database
.
Selalu gunakan kata benda tunggal sebagai nama.
Gunakan -
pada nilai argumen dan ditempat-tempat lain dimana nilai akan dipaparkan ke orang lain (Contoh di dalam nama DNS sebuah RDS).
Letakan argumen count
/ for_each
pada baris pertama di dalam blok sumber daya atau sumber data dan tambahkan baris baru untuk memisahkan dengan argumen lainnya.
Letakan argumen tags
(jika sumber daya mendukung hal tersebut) sebagai argumen terakhir, diikuti oleh depends_on
dan lifecycle
jika diperlukan. Semua argumen tersebut sebaiknya dipisahkan oleh satu baris kosong.
Ketika menggunakan argumen count
/ for_each
sebagai pernyataan bersyarat, pilihlah nilai boolean dibandingkan length
atau ekspresi lainnya
count
/ for_each
tags
count
Hindari membuat ulang secara mandiri (don't reinvent the wheel) pada modul sumber daya: gunakan name
, description
, dan nilai default
untuk variabel seperti yang didefinisikan pada bagian "Referensi Argumen" untuk sumber daya yang Anda kerjakan.
Dukungan untuk validasi variabel bersifat terbatas (Contoh tidak bisa mengakses variabel lain atau melakukan pencarian). Buat perencanaan validasi dengan baik karena fitur ini tidak bisa digunakan pada beberapa kasus tertentu.
Gunakan bentuk jamak pada nama variabel dengan tipe list(...)
atau map(...)
.
Urutkan nama atribut di dalam blok variabel seperti berikut: description
, type
, default
, validation
Selalu sertakan description
disemua variabel walaupun menurut Anda hal tersebut sudah jelas (Anda akan membutuhkannya dimasa yang akan datang).
Pilihlah tipe-tipe sederhana (number
, string
, list(...)
, map(...)
, any
) daripada tipe yang lebih spesifik seperti object()
kecuali Anda memerlukan batasan ketat pada setiap atributnya.
Gunakan tipe spesifik seperti map(map(string))
jika seluruh elemen dari map
memiliki tipe yang sama (Contoh string
) atau bisa dikonversikan menjadi tipe tersebut (Contoh tipe number
bisa dikonversi menjadi string
).
Gunakan tipe any
untuk menonaktifkan validasi tipe mulai dari level tertentu atau ketika perlu mendukung berbagai tipe.
Nilai {}
bisa bertipe map
atau bisa juga bertipe object
. Gunakan tomap(...)
untuk konversi menjadi map karena tidak ada cara untuk mengubah menjadi object
.
Buat keluaran konsisten dan mudah dipahami diluar cakupan mereka (Tipe dan atribut dari nilai yang dikembalikan harus jelas bagi pengguna modul ketika menggunakan modul tersebut).
Nama keluaran sebaiknya menjelaskan properti yang dimiliki dan tidak terlalu menggunakan bentuk bebas yang biasa kita inginkan.
Struktur yang baik untuk nama keluaran berbentuk {name}_{type}_{attribute}
, dimana:
{name}
adalah nama sumber daya atau sumber data tanpa awalan penyedia. Sebagai contoh {name}
untuk aws_subnet
adalah subnet
, {name}
untuk aws_vpc
adalah vpc
.
{type}
adalah tipe dari sumber daya
{attribute}
adalah atribut dari nilai keluaran
Selalu sertakan description
untuk semua keluaran walaupun hal itu dirasa sudah jelas.
Hindari argumen sensitive
kecuali Anda mengontrol penuh penggunaan keluaran tersebut diseluruh tempat pada seluruh modul.
output
Kembalikan paling banyak satu ID dari security group::
Ketika bekerja dengan banyak sumber daya berjenis sama, this
sebaiknya diabaikan dari nama keluaran:
Lihat
Jika keluaran mengembalikan nilai dengan fungsi interpolasi dan banyak sumber daya maka {name}
dan {type}
sebaiknya dibuat seumum mungkin (this
sebagai prefiks sebaiknya diabaikan saja). Lihat .
Jika nilai kembalian adalah sebuah daftar maka gunakan bentuk jamak sebagai nama. Lihat .