Mempelajari cara mengekspos informasi penting dari konfigurasi Terraform menggunakan output values, termasuk best practice untuk sensitive data.
Apa yang Akan Dipelajari? #
Output adalah cara Terraform menampilkan informasi penting setelah apply selesai — seperti IP address, URL, atau ARN. Output juga digunakan untuk menghubungkan antar module dan stack. Section ini membahas deklarasi output, contract design, dan penanganan sensitive data.
Artikel dalam Section Ini #
| Artikel | Topik Utama |
|---|---|
| Apa itu Output? | Konsep output value dan cara menggunakannya |
| Output Contract | Desain output yang robust untuk module dan team |
| Sensitive Output | Menangani data sensitif (password, API key) dengan aman |
Output Flow #
flowchart TD
subgraph Terraform Config
R["Resource<br/>(data di-cloud)"]
O["Output Block<br/>value = R.attribute"]
end
subgraph Consumers
CLI["CLI Output<br/>terraform output"]
MOD["Other Module<br/>module.vpc.vpc_id"]
CD["CI/CD Pipeline<br/>--json parsing"]
APP["Application<br/>data source"]
end
R --> O
O --> CLI
O --> MOD
O --> CD
O --> APP
style Terraform Config fill:#e3f2fd
style Consumers fill:#e8f5e9Output Contract Design #
flowchart LR
subgraph Module Outputs
VPC_ID["vpc_id<br/>string"]
SUBNETS["subnet_ids<br/>list(string)"]
SG_ID["security_group_id<br/>string"]
end
subgraph Consumers
APP["App Module<br/>needs subnet + SG"]
DB["DB Module<br/>needs VPC + subnet"]
end
VPC_ID --> DB
SUBNETS --> APP
SUBNETS --> DB
SG_ID --> APP
style Module Outputs fill:#e3f2fd
style Consumers fill:#e8f5e9Sensitive Data Handling #
# ✅ Benar: Mark sebagai sensitive
output "db_password" {
value = aws_db_instance.main.password
sensitive = true
}
# ✅ Akses dengan flag khusus
# terraform output -raw db_password
Setelah memahami output, lanjutkan ke Datasource untuk mempelajari cara membaca data dari cloud tanpa mengelolanya.