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

`validate` และ `fmt` ของ Terraform

ใช้คำสั่งในตัวของ Terraform เช่น `validate` เพื่อตรวจสอบไวยากรณ์การกำหนดค่า และ `fmt` เพื่อจัดรูปแบบโค้ดให้สอดคล้องกัน

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

คุณภาพโค้ดสำหรับ IaC

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

Terraform มีเครื่องมือในตัวที่ช่วยเรื่องนี้ ได้แก่ validate และ fmt เครื่องมือเหล่านี้ช่วยให้มั่นใจว่าการกำหนดค่าของคุณมีไวยากรณ์ถูกต้องและจัดรูปแบบอย่างสม่ำเสมอ

ตรวจจับข้อผิดพลาดตั้งแต่เนิ่น ๆ

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

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

การกำหนดค่าที่ถูกต้อง

มาดูการกำหนดค่า Terraform ที่ถูกต้องและเรียบง่ายกัน โค้ดนี้ประกาศบักเก็ต AWS S3

หากเรียกใช้ terraform validate กับโค้ดนี้ คำสั่งจะทำงานสำเร็จ แสดงว่าไม่มีปัญหาด้านไวยากรณ์หรือการกำหนดค่าพื้นฐาน

resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-unique-coddykit-bucket-123"
  acl    = "private"

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

ตรวจจับการพิมพ์ผิด

ถ้าเราเขียนผิดพลาดล่ะ ในที่นี้ อาร์กิวเมนต์ acl ถูกพิมพ์ผิดเป็น accl

terraform validate จะตรวจพบข้อผิดพลาดนี้ทันที และแจ้งให้ทราบว่า accl ไม่ใช่อาร์กิวเมนต์ที่รู้จักสำหรับทรัพยากรบักเก็ต S3

resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-unique-coddykit-bucket-456"
  accl   = "private" # Intentional typo!

  tags = {
    Environment = "Dev"
  }
}

วิธีใช้ `validate`

หากต้องการตรวจสอบการกำหนดค่าของคุณ ให้ไปยังไดเรกทอรีที่มีไฟล์ .tf ในเทอร์มินัล จากนั้นเรียกใช้คำสั่งต่อไปนี้:

terraform validate

คำสั่งนี้จะตรวจสอบไดเรกทอรีทำงาน ปัจจุบัน หากการตรวจสอบผ่าน คำสั่งจะสิ้นสุดลงโดยไม่มีข้อความเพิ่มเติมพร้อมข้อความแจ้งความสำเร็จ หากไม่ผ่าน คำสั่งจะแสดงข้อความข้อผิดพลาดที่ชัดเจน

ความสอดคล้องคือกุญแจสำคัญ

คุณเคยทำงานในทีมที่ทุกคนจัดรูปแบบโค้ดแตกต่างกันหรือไม่ เรื่องนี้อาจทำให้โค้ดอ่านและดูแลรักษาได้ยาก terraform fmt (การจัดรูปแบบ) ช่วยแก้ปัญหานี้ได้

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

โค้ดที่ไม่ได้จัดรูปแบบ

ลองดูการกำหนดค่านี้ การเยื้องไม่สม่ำเสมอและการเว้นวรรคไม่ถูกต้อง โค้ดนี้ถูกต้อง แต่ตรวจดูอย่างรวดเร็วได้ยาก

การจัดรูปแบบลักษณะนี้เกิดขึ้นได้ง่ายเมื่อมีหลายคนทำงานกับไฟล์เดียวกัน

resource "aws_s3_bucket" "another_bucket" {
    bucket = "coddykit-unformatted-bucket"
        acl = "private"
      tags = {
          Project = "CoddyKit"
        Env = "Test"
      }
}

จัดรูปแบบอย่างสวยงาม

ลองนึกภาพว่าเรียกใช้ terraform fmt กับโค้ดก่อนหน้านี้ คำสั่งจะปรับการเว้นวรรคและการเยื้องโดยอัตโนมัติให้ตรงกับสไตล์มาตรฐานของ Terraform

การดำเนินการนี้ทำให้โค้ดสะอาดขึ้นมากและอ่านง่ายขึ้น เป็นการเปลี่ยนแปลงเล็ก ๆ ที่ส่งผลอย่างมากต่อการทำงานร่วมกัน

resource "aws_s3_bucket" "another_bucket" {
  bucket = "coddykit-unformatted-bucket"
  acl    = "private"
  tags = {
    Project = "CoddyKit"
    Env     = "Test"
  }
}

fmt สำหรับทีม

หากต้องการจัดรูปแบบไฟล์ ให้เรียกใช้ terraform fmt ในไดเรกทอรีการกำหนดค่าของคุณ คำสั่งนี้จะแก้ไขไฟล์โดยตรง

สำหรับกระบวนการ CI/CD คุณอาจใช้ terraform fmt -check=true เพื่อตรวจสอบว่าไฟล์ ได้รับการจัดรูปแบบอย่างถูกต้องหรือไม่โดยไม่แก้ไขไฟล์ หรือใช้ -diff เพื่อดูการเปลี่ยนแปลงที่เสนอ

ทดสอบความรู้ของคุณ

ข้อความใดต่อไปนี้เกี่ยวกับ terraform validate และ terraform fmt เป็น TRUE

ตรวจสอบและจัดรูปแบบโค้ดของคุณ

ในบทเรียนนี้ คุณได้เรียนรู้เกี่ยวกับคำสั่ง Terraform ที่สำคัญสองคำสั่ง:

  • terraform validate: ตรวจสอบว่าการกำหนดค่ามีไวยากรณ์ถูกต้องและมีความสอดคล้องภายใน พร้อมตรวจจับข้อผิดพลาดตั้งแต่เนิ่น ๆ
  • terraform fmt: จัดรูปแบบโค้ดของคุณโดยอัตโนมัติให้มีสไตล์สอดคล้องกัน ช่วยเพิ่มความอ่านง่ายและการทำงานร่วมกัน

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

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

บทเรียน “`validate` และ `fmt` ของ Terraform” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “`validate` และ `fmt` ของ Terraform”

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

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

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

บทเรียน “`validate` และ `fmt` ของ Terraform” ใช้เวลานานแค่ไหน

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

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

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

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

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