`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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- `validate` และ `fmt` ของ Terraform
- การทดสอบหน่วยด้วย Terratest
- การทดสอบการผสานรวมทรัพยากรคลาวด์
- นโยบายในรูปโค้ดและการตรวจสอบการปฏิบัติตามข้อกำหนด