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

การทดสอบการผสานรวมทรัพยากรคลาวด์

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

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

การทดสอบการผสานรวมคืออะไร

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

สำหรับ Terraform นั่นหมายถึงการปรับใช้ทรัพยากรคลาวด์จริง แล้วตรวจสอบพฤติกรรมและการโต้ตอบระหว่างทรัพยากรเหล่านั้น

เหตุใดจึงต้องทดสอบการผสานรวม Terraform

การทดสอบการผสานรวมมีความสำคัญต่อ Terraform เพราะช่วยให้คุณมั่นใจว่าโค้ดของคุณ:

  • ปรับใช้ได้อย่างถูกต้อง: ตรวจสอบว่าทรัพยากรถูกสร้างตามที่คาดไว้
  • ทำงานตามที่ตั้งใจ: ตรวจสอบการทำงาน ไม่ใช่เพียงไวยากรณ์
  • จัดการการพึ่งพากันได้: ทำให้แน่ใจว่าทรัพยากรที่เชื่อมโยงกันสื่อสารกันได้
  • ป้องกันการถดถอย: ตรวจจับปัญหาเมื่อมีการเปลี่ยนแปลง

แนวคิดสำคัญคือการทดสอบสิ่งที่ใช้งานจริงในสภาพแวดล้อมที่ควบคุมได้

แนะนำ Terratest

แม้ว่าคุณจะเขียนสคริปต์เองได้ แต่เครื่องมือยอดนิยมที่สุดสำหรับการทดสอบการผสานรวม Terraform คือ Terratest ซึ่งเป็นไลบรารี Go แบบโอเพนซอร์สที่พัฒนาโดย HashiCorp

Terratest ช่วยให้คุณสามารถ:

  • เขียนโค้ด Go เพื่อปรับใช้ Terraform
  • เรียกใช้การตรวจสอบกับทรัพยากรที่ปรับใช้แล้ว
  • ทำลายทรัพยากรหลังการทดสอบ

นอกจากนี้ยังมีฟังก์ชันช่วยสำหรับโต้ตอบกับ Terraform, API ของคลาวด์ และอื่น ๆ

การตั้งค่า Terratest

หากต้องการใช้ Terratest คุณต้องติดตั้ง Go ไว้ในเครื่อง เมื่อ Go พร้อมใช้งานแล้ว ให้สร้างมอดูล Go ใหม่สำหรับการทดสอบของคุณ:

1. สร้างไดเรกทอรีสำหรับการทดสอบ (เช่น test/)

2. เริ่มต้นมอดูล Go ภายในไดเรกทอรีนั้น:

cd test
go mod init my_tf_tests

เพิ่มการพึ่งพา Terratest

หลังจากเริ่มต้นมอดูล Go แล้ว คุณต้องเพิ่ม Terratest เป็นการพึ่งพา คำสั่งนี้จะดาวน์โหลดไลบรารีและอัปเดตไฟล์ go.mod ของคุณ:

go get github.com/gruntwork-io/terratest/modules/terraform

มอดูล Terraform สำหรับการทดสอบของเรา

มาสร้างการกำหนดค่า Terraform อย่างง่ายที่เราต้องการทดสอบกัน การกำหนดค่านี้จะเป็นบักเก็ต S3 พื้นฐาน ให้บันทึกเป็น s3-module/main.tf:

resource "aws_s3_bucket" "example" {
  bucket = "my-unique-test-bucket-12345"
  tags = {
    Environment = "test"
    ManagedBy   = "Terraform"
  }
}

เขียนการทดสอบ Terratest แรกของคุณ

ตอนนี้มาเขียนไฟล์การทดสอบ Go ของเรากัน สร้างไฟล์ เช่น test/s3_test.go ขั้นตอนสำคัญมีดังนี้:

  • กำหนดตัวเลือก Terraform (เส้นทางไปยังการกำหนดค่า)
  • เริ่มต้นและนำ Terraform ไปใช้
  • เรียกใช้การตรวจสอบ
  • ทำลายทรัพยากร

วิธีนี้ช่วยให้สถานะหลังจากการทดสอบแต่ละครั้งสะอาด

Terratest: เริ่มต้น นำไปใช้ และตรวจสอบ

นี่คือโค้ด Go สำหรับการทดสอบบักเก็ต S3 ของเรา โปรดสังเกตว่าเราใช้ terraform.InitAndApply เพื่อจัดเตรียมโครงสร้างพื้นฐาน จากนั้นจึงดึงผลลัพธ์หรือเรียกใช้ API ของ AWS เพื่อตรวจสอบ

package test

import (
  "testing"
  "github.com/gruntwork-io/terratest/modules/aws"
  "github.com/gruntwork-io/terratest/modules/terraform"
  "github.com/stretchr/testify/assert"
)

func TestS3BucketCreation(t *testing.T) {
  t.Parallel()

  terraformOptions := &terraform.Options{
    TerraformDir: "../s3-module",
  }

  // Defer destroy to ensure cleanup
  defer terraform.Destroy(t, terraformOptions)

  // Init and apply Terraform
  terraform.InitAndApply(t, terraformOptions)

  // Get the bucket name directly from the config or outputs
  bucketName := "my-unique-test-bucket-12345"

  // Assertions
  aws.AssertS3BucketExists(t, "us-east-1", bucketName)
  tags := aws.GetS3BucketTags(t, "us-east-1", bucketName)
  assert.Equal(t, "test", tags["Environment"])
}

เรียกใช้การทดสอบการผสานรวมของคุณ

หากต้องการเรียกใช้ Terratest ให้ไปยังไดเรกทอรี test/ ในเทอร์มินัล แล้วเรียกใช้คำสั่งทดสอบ Go แฟล็ก -v จะแสดงผลลัพธ์อย่างละเอียด

Terratest จะดำเนินการดังนี้:

  • เริ่มต้น Terraform
  • นำการกำหนดค่าไปใช้
  • ดำเนินการตรวจสอบ
  • ทำลายทรัพยากรที่สร้างขึ้น
cd test
go test -v

แนวทางปฏิบัติที่ดีสำหรับการทดสอบการผสานรวม

โปรดคำนึงถึงเคล็ดลับเหล่านี้เพื่อให้การทดสอบการผสานรวมมีประสิทธิภาพ:

  • การแยกจากกัน: ใช้ชื่อที่ไม่ซ้ำกันหรือส่วนต่อท้ายแบบสุ่มสำหรับทรัพยากร เพื่อหลีกเลี่ยงความขัดแย้ง
  • การล้างทรัพยากร: ทำลายทรัพยากรหลังการทดสอบเสมอ (defer terraform.Destroy)
  • ค่าใช้จ่าย: ระมัดระวังค่าใช้จ่ายของทรัพยากร เลือกใช้ทรัพยากรขนาดเล็กและราคาถูก
  • ความเร็ว: การทดสอบการผสานรวมช้ากว่าการทดสอบหน่วย จึงควรเรียกใช้น้อยกว่า เช่น เรียกใช้ใน CI/CD
  • ความสมจริง: ทดสอบกับสภาพแวดล้อมคลาวด์เดียวกับที่จะใช้ปรับใช้ (หรือบัญชีทดสอบโดยเฉพาะ)

ตรวจสอบความเข้าใจของคุณ

ข้อใดต่อไปนี้คือประโยชน์หลักของการใช้การทดสอบการผสานรวมกับการกำหนดค่า Terraform

สรุป: การทดสอบการผสานรวม

คุณได้เรียนรู้เกี่ยวกับการทดสอบการผสานรวมสำหรับ Terraform แล้ว! เนื้อหาที่ครอบคลุมมีดังนี้:

  • การทดสอบการผสานรวมคืออะไร และเหตุใดจึงสำคัญต่อ Terraform
  • Terratest ซึ่งเป็นไลบรารีของ Go ช่วยเขียนการทดสอบเหล่านี้อย่างไร
  • กระบวนการพื้นฐาน: ตั้งค่า นำไปใช้ ตรวจสอบ และทำลาย
  • แนวทางปฏิบัติที่ดีสำหรับการเขียนการทดสอบการผสานรวมที่มีประสิทธิภาพและประหยัดค่าใช้จ่าย

การทดสอบการผสานรวมช่วยให้มั่นใจได้ว่าโครงสร้างพื้นฐานของคุณทำงานได้อย่างถูกต้องในโลกจริง

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

บทเรียน “การทดสอบการผสานรวมทรัพยากรคลาวด์” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การทดสอบการผสานรวมทรัพยากรคลาวด์”

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

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

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

บทเรียน “การทดสอบการผสานรวมทรัพยากรคลาวด์” ใช้เวลานานแค่ไหน

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

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

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

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

  1. `validate` และ `fmt` ของ Terraform
  2. การทดสอบหน่วยด้วย Terratest
  3. การทดสอบการผสานรวมทรัพยากรคลาวด์
  4. นโยบายในรูปโค้ดและการตรวจสอบการปฏิบัติตามข้อกำหนด
← กลับไปที่ DevOps Bootcamp