0Pricing
DevOps Bootcamp · บทเรียน

ผู้ให้บริการและทรัพยากร

ทำความเข้าใจวิธีที่ Terraform โต้ตอบกับผู้ให้บริการคลาวด์และบริการต่าง ๆ รวมถึงวิธีกำหนดองค์ประกอบโครงสร้างพื้นฐานแต่ละรายการเป็นทรัพยากร

ผู้ให้บริการและทรัพยากร เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

องค์ประกอบพื้นฐานของ Terraform

ยินดีต้อนรับ! Terraform ช่วยให้คุณจัดการโครงสร้างพื้นฐานคลาวด์ด้วยโค้ด แต่ Terraform สื่อสารกับผู้ให้บริการคลาวด์และกำหนดสิ่งที่คุณต้องการสร้างได้อย่างไร

บทเรียนนี้จะแนะนำแนวคิดพื้นฐานสองประการ ได้แก่ ผู้ให้บริการ และ ทรัพยากร ทั้งสองอย่างเป็นองค์ประกอบพื้นฐานของการกำหนดค่า Terraform ทุกชุด และสำคัญต่อการทำความเข้าใจการทำงานของ IaC

ผู้ให้บริการ Terraform คืออะไร

ให้คิดว่า ผู้ให้บริการ คือปลั๊กอินที่ทำให้ Terraform โต้ตอบกับบริการภายนอกหรือ API ได้ ซึ่งอาจเป็นผู้ให้บริการคลาวด์อย่าง AWS, Azure หรือ Google Cloud หรือบริการอย่าง GitHub, Kubernetes หรือ Datadog ก็ได้

  • ผู้ให้บริการแต่ละรายเข้าใจการเรียก API เฉพาะที่จำเป็นสำหรับบริการของตน
  • ผู้ให้บริการจะแปลงโครงสร้างพื้นฐานที่คุณต้องการให้เป็นการดำเนินการที่บริการนั้นทำได้
  • คุณกำหนดค่าผู้ให้บริการเพื่อบอก Terraform ว่าจะใช้บริการใดและจะยืนยันตัวตนอย่างไร

การประกาศบล็อกผู้ให้บริการ

หากต้องการใช้ผู้ให้บริการ ให้ประกาศผู้ให้บริการนั้นในไฟล์การกำหนดค่า Terraform โดยใช้บล็อก provider บล็อกนี้ระบุชื่อผู้ให้บริการและการตั้งค่าที่จำเป็น เช่น ภูมิภาคสำหรับผู้ให้บริการคลาวด์

ตัวอย่างทั่วไปสำหรับผู้ให้บริการ AWS มีดังนี้

terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } } provider "aws" { region = "us-east-1" }
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

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

แหล่งที่มาและรุ่นของผู้ให้บริการ

ส่วน required_providers ในบล็อก terraform มีความสำคัญ โดยจะบอก Terraform ว่าจะค้นหาผู้ให้บริการจากที่ใด (ค่า source) และจะใช้ version ใด ซึ่งช่วยให้การทำงานสอดคล้องกันและป้องกันพฤติกรรมที่ไม่คาดคิด

  • แหล่งที่มา: ระบุเส้นทางรีจิสทรีของผู้ให้บริการ เช่น hashicorp/aws
  • รุ่น: ล็อกรุ่นของผู้ให้บริการ เพื่อป้องกันการเปลี่ยนแปลงที่ทำให้ระบบใช้งานไม่ได้จากรุ่นใหม่
  • จากนั้นบล็อก provider "aws" จะกำหนดการตั้งค่าเฉพาะ เช่น region ของ AWS สำหรับทรัพยากรทั้งหมดที่ผู้ให้บริการนี้จัดการ

ทรัพยากร Terraform คืออะไร

ทรัพยากรคือบล็อกที่อธิบายองค์ประกอบหนึ่งรายการของโครงสร้างพื้นฐาน เช่น VM เครือข่าย ฐานข้อมูล บักเก็ตจัดเก็บข้อมูล หรือแม้แต่บัญชีผู้ใช้

  • ผู้ให้บริการเฉพาะรายจะจัดการทรัพยากรแต่ละชนิด เช่น aws_s3_bucket จัดการโดยผู้ให้บริการ AWS
  • คุณประกาศสถานะที่ต้องการของทรัพยากร แล้ว Terraform จะดำเนินการเพื่อให้ได้สถานะนั้น
  • ทรัพยากรมีอาร์กิวเมนต์ที่กำหนดคุณสมบัติ เช่น ขนาด ชื่อ และตำแหน่ง

การประกาศบล็อกทรัพยากร

คุณกำหนดทรัพยากรโดยใช้บล็อก resource บล็อกนี้ต้องใช้สตริงสองรายการ:

  • ชนิดทรัพยากร เช่น aws_s3_bucket
  • ชื่อภายในเครื่อง เช่น my_first_bucket ซึ่งต้องไม่ซ้ำกันภายในการกำหนดค่าของคุณ

ชนิดจะบอก Terraform ว่าเป็นองค์ประกอบโครงสร้างพื้นฐานประเภทใด ส่วนชื่อจะเป็นตัวระบุเฉพาะที่ Terraform ใช้ติดตามทรัพยากร

resource "aws_s3_bucket" "my_first_bucket" { # Arguments go here to define its properties }
resource "aws_s3_bucket" "my_first_bucket" {
  # Arguments go here to define its properties
}

อาร์กิวเมนต์และคุณสมบัติของทรัพยากร

ภายในบล็อก resource คุณระบุอาร์กิวเมนต์ ซึ่งเป็นคู่คีย์-ค่าที่กำหนดคุณสมบัติและการกำหนดค่าขององค์ประกอบโครงสร้างพื้นฐาน อาร์กิวเมนต์ที่ใช้ได้จะขึ้นอยู่กับชนิดทรัพยากรและผู้ให้บริการที่จัดการทรัพยากรนั้น

  • สำหรับบักเก็ต AWS S3 อาร์กิวเมนต์อาจมี bucket (ชื่อเฉพาะ) acl (รายการควบคุมการเข้าถึง) หรือ tags สำหรับติดป้ายกำกับ
  • Terraform ใช้อาร์กิวเมนต์เหล่านี้เพื่อสร้างหรืออัปเดตทรัพยากรให้ตรงกับสถานะที่คุณต้องการในคลาวด์

รวมทุกอย่างเข้าด้วยกัน: ผู้ให้บริการและทรัพยากร

นี่คือการกำหนดค่า Terraform แบบง่ายที่สมบูรณ์ โดยประกาศผู้ให้บริการ AWS แล้วใช้ผู้ให้บริการนั้นสร้างบักเก็ต S3 พื้นฐาน ไฟล์เดียวนี้ก็เพียงพอสำหรับเริ่มกำหนดโครงสร้างพื้นฐานแล้ว

terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } } provider "aws" { region = "us-east-1" } resource "aws_s3_bucket" "my_unique_bucket" { bucket = "my-coddykit-demo-bucket-12345" # Must be globally unique! acl = "private" tags = { Environment = "Development" Project = "CoddyKit" } }
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

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

resource "aws_s3_bucket" "my_unique_bucket" {
  bucket = "my-coddykit-demo-bucket-12345" # Must be globally unique!
  acl    = "private"

  tags = {
    Environment = "Development"
    Project     = "CoddyKit"
  }
}

ความเชื่อมโยงกับขั้นตอนการทำงานของ Terraform

เมื่อคุณเรียกใช้คำสั่ง Terraform ผู้ให้บริการและทรัพยากรจะมีบทบาทสำคัญ:

  • terraform init: ดาวน์โหลดปลั๊กอินผู้ให้บริการที่จำเป็น
  • terraform plan: ใช้ผู้ให้บริการสื่อสารกับ API ของคลาวด์ และกำหนดว่าต้องเปลี่ยนแปลงสิ่งใดเพื่อให้ทรัพยากรอยู่ในสถานะที่ต้องการ
  • terraform apply: สั่งให้ผู้ให้บริการดำเนินการเปลี่ยนแปลงเหล่านั้นกับโครงสร้างพื้นฐานคลาวด์จริงของคุณ

ทั้งสองอย่างเป็นจุดโต้ตอบหลักสำหรับจัดการโครงสร้างพื้นฐานของคุณ

ตรวจสอบสั้น ๆ: บทบาทของผู้ให้บริการ

คุณได้เรียนรู้เกี่ยวกับผู้ให้บริการและทรัพยากรแล้ว มาดูกันว่าคุณสามารถระบุบทบาทของทั้งสองอย่างได้ถูกต้องหรือไม่

สรุป: ผู้ให้บริการและทรัพยากร

ทำได้ดีมาก! ในบทเรียนนี้ คุณได้ทำความเข้าใจพื้นฐานของแนวคิดสำคัญที่สุดสองประการใน Terraform:

  • ผู้ให้บริการ: ปลั๊กอินสำคัญที่ทำให้ Terraform โต้ตอบกับบริการคลาวด์และ API ต่าง ๆ ได้ คุณกำหนดค่าเพื่อระบุว่าจะใช้บริการใดและจะยืนยันตัวตนอย่างไร
  • ทรัพยากร: องค์ประกอบโครงสร้างพื้นฐานแต่ละรายการที่คุณประกาศในการกำหนดค่า โดยมีชนิดและอาร์กิวเมนต์สำหรับกำหนดสถานะที่ต้องการ

องค์ประกอบทั้งสองทำงานร่วมกันเพื่อให้คุณกำหนดและจัดการโครงสร้างพื้นฐานในรูปแบบโค้ดได้อย่างมีประสิทธิภาพ

คำถามที่พบบ่อย

บทเรียน “ผู้ให้บริการและทรัพยากร” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ผู้ให้บริการและทรัพยากร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ผู้ให้บริการและทรัพยากร”

ทำความเข้าใจวิธีที่ Terraform โต้ตอบกับผู้ให้บริการคลาวด์และบริการต่าง ๆ รวมถึงวิธีกำหนดองค์ประกอบโครงสร้างพื้นฐานแต่ละรายการเป็นทรัพยากร คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “ผู้ให้บริการและทรัพยากร” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ผู้ให้บริการและทรัพยากร
  2. ตัวแปรและผลลัพธ์
  3. พื้นฐานการจัดการสถานะ
  4. โมดูลและการใช้โค้ดซ้ำ
← กลับไปที่ DevOps Bootcamp