0Pricing
DevOps Bootcamp · Pelajaran

Membuat Kueri Data dengan Sumber Data

Manfaatkan sumber data untuk mengambil informasi tentang infrastruktur yang sudah ada atau layanan eksternal, sehingga konfigurasi dapat menjadi lebih dinamis dan adaptif.

Membuat Kueri Data dengan Sumber Data adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa Itu Sumber Data?

Dalam Terraform, kita sering perlu merujuk infrastruktur yang sudah ada atau data eksternal yang tidak dikelola oleh konfigurasi kita saat ini.

Di sinilah sumber data berperan! Sumber data memungkinkan konfigurasi Terraform Anda mengambil informasi tentang sumber daya yang sudah disediakan atau layanan eksternal.

Sumber Data vs. Sumber Daya

Penting untuk membedakan sumber data dari sumber daya.

  • Sumber daya mendefinisikan infrastruktur yang akan dibuat, diperbarui, atau dihapus oleh Terraform.
  • Sumber data hanya mengambil informasi tentang infrastruktur atau data yang sudah ada. Sumber data tidak membuat atau mengubah apa pun.

Anggaplah sumber data sebagai kueri baca-saja untuk infrastruktur Anda.

Kasus Penggunaan Praktis

Sumber data sangat berguna untuk:

  • Menemukan ID Virtual Private Cloud (VPC) yang sudah ada.
  • Mendapatkan Amazon Machine Image (AMI) terbaru untuk instans EC2.
  • Mengambil rahasia dari layanan pengelolaan rahasia.
  • Mencari catatan DNS atau konfigurasi jaringan.

Sumber data membuat konfigurasi Anda lebih dinamis dan mengurangi nilai yang ditulis secara langsung.

Mendefinisikan Sumber Data

Blok sumber data terlihat mirip dengan blok sumber daya. Blok ini dimulai dengan kata kunci data, diikuti oleh penyedia dan jenisnya, lalu nama lokal.

data "aws_vpc" "selected" {
  filter {
    name   = "tag:Name"
    values = ["my-existing-vpc"]
  }
}

Menggunakan Data yang Diambil

Setelah sumber data mengambil informasi, atributnya tersedia untuk bagian lain dari konfigurasi Anda. Anda dapat merujuknya menggunakan sintaks: data.<TYPE>.<NAME>.<ATTRIBUTE>.

Misalnya, untuk mendapatkan ID VPC yang kita pilih:

output "vpc_id" {
  value = data.aws_vpc.selected.id
}

Mengambil AMI Terbaru

Tugas yang umum dilakukan adalah menemukan Amazon Machine Image (AMI) terbaru untuk instans EC2. Cara ini menghindari penulisan langsung ID AMI sehingga konfigurasi Anda menjadi lebih tangguh.

Berikut cara mengambil AMI Amazon Linux 2 terbaru:

provider "aws" {
  region = "us-east-1"
}

data "aws_ami" "amazon_linux_2" {
  most_recent = true
  owners      = ["amazon"]

  filter {
    name   = "name"
    values = ["amzn2-ami-hvm-*-x86_64-gp2"]
  }

  filter {
    name   = "virtualization-type"
    values = ["hvm"]
  }
}

output "latest_ami_id" {
  value = data.aws_ami.amazon_linux_2.id
}

Dokumen Kebijakan S3 Dinamis

Sumber data tidak hanya digunakan untuk sumber daya cloud. Sumber data aws_iam_policy_document membantu menyusun kebijakan IAM yang kompleks dengan cara yang terstruktur.

Sumber data ini tidak membuat kebijakan, tetapi menghasilkan dokumen JSON yang kemudian dapat Anda terapkan pada sumber daya seperti bucket S3.

provider "aws" {
  region = "us-east-1"
}

data "aws_iam_policy_document" "s3_read_only_policy" {
  statement {
    principals {
      type        = "AWS"
      identifiers = ["arn:aws:iam::123456789012:user/example-user"]
    }
    actions = [
      "s3:GetObject",
      "s3:ListBucket"
    ]
    resources = [
      "arn:aws:s3:::my-example-bucket",
      "arn:aws:s3:::my-example-bucket/*"
    ]
  }
}

output "policy_json" {
  value = data.aws_iam_policy_document.s3_read_only_policy.json
}

Menyempurnakan Pencarian

Banyak sumber data mendukung blok filter. Blok ini memungkinkan Anda menentukan kriteria untuk mempersempit hasil dan memastikan Anda mengambil sumber daya atau data yang benar.

Filter biasanya menerima name (atribut yang digunakan sebagai penyaring) dan values (daftar nilai yang dapat diterima untuk atribut tersebut).

data "aws_instance" "web" {
  instance_state_names = ["running"]
  filter {
    name   = "tag:Environment"
    values = ["production"]
  }
  filter {
    name   = "instance-type"
    values = ["t2.micro", "t3.micro"]
  }
}

Praktik Terbaik Sumber Data

Untuk menjaga konfigurasi tetap rapi dan efisien:

  • Spesifik: Gunakan filter untuk memastikan Anda mengambil data yang tepat, sehingga menghindari ambiguitas.
  • Idempoten: Sumber data pada dasarnya bersifat idempoten, artinya menjalankannya beberapa kali menghasilkan hasil yang sama.
  • Minimalkan Pemanggilan: Ambil data hanya jika diperlukan untuk mempercepat operasi terraform plan.
  • Gabungkan dengan Output: Gunakan output untuk mengekspos data yang diambil dan mungkin diperlukan oleh konfigurasi lain atau pengguna.

Kuis Sumber Data

Pernyataan manakah berikut ini yang BENAR tentang Sumber Data Terraform?

Rangkuman: Mengueri Data

Anda telah mempelajari bagaimana sumber data Terraform memungkinkan konfigurasi Anda mengueri dan mengambil informasi tentang infrastruktur yang sudah ada atau layanan eksternal.

Fitur yang kuat ini memungkinkan konfigurasi yang dinamis, fleksibel, dan tangguh dengan menghindari nilai yang ditulis secara langsung serta menyesuaikan diri dengan status lingkungan Anda saat ini. Ingat, sumber data hanya membaca, tidak pernah membuat atau mengubah!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Membuat Kueri Data dengan Sumber Data” gratis?

Ya — teks lengkap “Membuat Kueri Data dengan Sumber Data” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Membuat Kueri Data dengan Sumber Data”?

Manfaatkan sumber data untuk mengambil informasi tentang infrastruktur yang sudah ada atau layanan eksternal, sehingga konfigurasi dapat menjadi lebih dinamis dan adaptif. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Membuat Kueri Data dengan Sumber Data” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membuat Kueri Data dengan Sumber Data
  2. Provisioner local-exec dan remote-exec
  3. Resource Null dan Pemicu
  4. Menggunakan Data Eksternal dan Templat
← Kembali ke DevOps Bootcamp