Kem Intensif DevOps · Pelajaran

Membuat Pertanyaan dengan Sumber Data

Gunakan sumber data untuk mendapatkan maklumat tentang infrastruktur sedia ada atau perkhidmatan luaran, sekali gus membolehkan konfigurasi yang lebih dinamik dan adaptif.

Pelajaran 1 daripada 411 langkah

Membuat Pertanyaan dengan Sumber Data ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Apakah Sumber Data?

Dalam Terraform, kita sering perlu merujuk infrastruktur sedia ada atau data luaran yang tidak diurus oleh konfigurasi semasa kita.

Di sinilah Sumber Data digunakan! Sumber ini membolehkan konfigurasi Terraform anda mendapatkan maklumat tentang sumber yang telah diperuntukkan atau perkhidmatan luaran.

Sumber Data berbanding Sumber

Penting untuk membezakan sumber data daripada sumber.

  • Sumber mentakrifkan infrastruktur yang akan dicipta, dikemas kini atau dipadam oleh Terraform.
  • Sumber Data hanya mendapatkan maklumat tentang infrastruktur atau data sedia ada. Sumber ini tidak mencipta atau mengubah apa-apa.

Anggaplah sumber ini sebagai pertanyaan baca sahaja untuk infrastruktur anda.

Kes Penggunaan Praktikal

Sumber data amat berguna untuk:

  • Mencari ID Virtual Private Cloud (VPC) sedia ada.
  • Mendapatkan Amazon Machine Image (AMI) terkini untuk tika EC2.
  • Mendapatkan rahsia daripada perkhidmatan pengurusan rahsia.
  • Mencari rekod DNS atau konfigurasi rangkaian.

Sumber ini menjadikan konfigurasi anda lebih dinamik dan kurang bergantung pada nilai yang ditetapkan secara keras.

Mentakrifkan Sumber Data

Blok sumber data kelihatan serupa dengan blok sumber. Blok ini bermula dengan kata kunci data, diikuti pembekal dan jenis, kemudian nama setempat.

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

Menggunakan Data yang Diperoleh

Setelah sumber data mendapatkan maklumat, ATTRIBUTE sumber itu tersedia untuk bahagian lain dalam konfigurasi anda. Anda boleh merujuknya menggunakan sintaks: data.<TYPE>.<NAME>.<ATTRIBUTE>.

Contohnya, untuk mendapatkan ID VPC yang kita pilih:

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

Mendapatkan AMI Terkini

Tugas yang biasa dilakukan ialah mencari Amazon Machine Image (AMI) terkini untuk tika EC2. Ini mengelakkan penetapan keras ID AMI, lalu menjadikan konfigurasi anda lebih teguh.

Berikut ialah cara mendapatkan AMI Amazon Linux 2 yang terkini:

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 Dasar S3 Dinamik

Sumber data bukan hanya untuk sumber awan. Sumber data aws_iam_policy_document membantu membina dasar IAM yang kompleks secara berstruktur.

Sumber ini tidak mencipta dasar, tetapi menjana dokumen JSON yang kemudiannya boleh anda gunakan pada sumber seperti baldi 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
}

Memperhalus Carian Anda

Banyak sumber data menyokong blok penapis. Blok ini membolehkan anda menentukan kriteria untuk mengecilkan hasil dan memastikan anda mendapatkan sumber atau data yang betul.

Penapis biasanya menerima name (ATTRIBUTE yang digunakan untuk menapis) dan values (senarai nilai yang diterima untuk ATTRIBUTE tersebut).

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

Amalan Terbaik Sumber Data

Untuk memastikan konfigurasi anda kemas dan cekap:

  • Jadi Khusus: Gunakan penapis untuk memastikan anda mendapatkan data tepat yang diperlukan dan mengelakkan kekaburan.
  • Idempotensi: Sumber data sememangnya idempoten, iaitu menjalankannya beberapa kali menghasilkan hasil yang sama.
  • Minimumkan Panggilan: Dapatkan data hanya apabila perlu untuk mempercepat operasi terraform plan.
  • Gabungkan dengan Keluaran: Gunakan keluaran untuk mendedahkan data yang diperoleh dan mungkin diperlukan oleh konfigurasi lain atau pengguna.

Kuiz Sumber Data

Pernyataan manakah yang TRUE tentang Sumber Data Terraform?

Ringkasan: Membuat Pertanyaan Data

Anda telah mempelajari cara sumber data Terraform membolehkan konfigurasi anda membuat pertanyaan dan mendapatkan maklumat tentang infrastruktur sedia ada atau perkhidmatan luaran.

Ciri berkuasa ini membolehkan konfigurasi yang dinamik, fleksibel dan teguh dengan mengelakkan nilai yang ditetapkan secara keras serta menyesuaikan diri dengan keadaan semasa persekitaran anda. Ingat, sumber data hanya membaca; sumber ini tidak pernah mencipta atau mengubah!

Percuma untuk bermula

Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
142
Pelajaran
568

Soalan Lazim

Adakah pelajaran “Membuat Pertanyaan dengan Sumber Data” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “Membuat Pertanyaan dengan Sumber Data”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Membuat Pertanyaan dengan Sumber Data”?

Gunakan sumber data untuk mendapatkan maklumat tentang infrastruktur sedia ada atau perkhidmatan luaran, sekali gus membolehkan konfigurasi yang lebih dinamik dan adaptif. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Membuat Pertanyaan dengan Sumber Data” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?

Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Membuat Pertanyaan dengan Sumber Data
  2. Penyedia Tempatan dan Jauh
  3. Sumber Null dan Pencetus
  4. Menggunakan Data Luaran dan Templat
← Kembali ke Kem Intensif DevOps