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 #

ArtikelTopik Utama
Apa itu Output?Konsep output value dan cara menggunakannya
Output ContractDesain output yang robust untuk module dan team
Sensitive OutputMenangani 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:#e8f5e9

Output 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:#e8f5e9

Sensitive 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.

About | Author | Content Scope | Editorial Policy | Privacy Policy | Disclaimer | Contact