โครงสร้างโค้ดและหลักเกณฑ์การตั้งชื่อ
นำแนวทางปฏิบัติที่ดีมาใช้ในการจัดระเบียบไฟล์และโมดูลของ Terraform พร้อมกำหนดหลักเกณฑ์การตั้งชื่อทรัพยากรและตัวแปรให้สอดคล้องกัน
โครงสร้างโค้ดและหลักเกณฑ์การตั้งชื่อ เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องจัดโครงสร้างโค้ด Terraform
เช่นเดียวกับการจัดระเบียบพื้นที่ทำงานจริง การจัดโครงสร้างโค้ด Terraform ช่วยให้ทำความเข้าใจ จัดการ และทำงานร่วมกันได้ง่ายขึ้น
โครงสร้างที่ดีช่วยให้อ่านง่ายขึ้น ลดข้อผิดพลาด และช่วยให้สมาชิกใหม่ในทีมเริ่มทำงานได้อย่างรวดเร็ว
ไฟล์ Terraform ที่จำเป็น
โดยทั่วไป โครงการ Terraform จะเริ่มต้นด้วยไฟล์สำคัญไม่กี่ไฟล์ การจัดระเบียบการกำหนดค่าลงในไฟล์เหล่านี้เป็นแนวทางปฏิบัติที่ดีโดยทั่วไป:
main.tf: กำหนดทรัพยากรและโมดูลvariables.tf: ประกาศตัวแปรอินพุตทั้งหมดoutputs.tf: กำหนดค่าเอาต์พุตจากโครงสร้างพื้นฐานversions.tf: ระบุเวอร์ชันของ Terraform และผู้ให้บริการ
การตั้งชื่อทรัพยากร
การตั้งชื่ออย่างสอดคล้องกันช่วยให้ระบุทรัพยากรได้ง่าย ปฏิบัติตามแนวทางทั่วไปเหล่านี้สำหรับชื่อท้องถิ่น (เช่น my_instance ใน resource "aws_instance" "my_instance"):
- ใช้ชื่อที่สื่อความหมาย: ทรัพยากรนี้ทำหน้าที่อะไร
- ใช้ยัติภังค์หรือขีดล่าง: เพื่อให้อ่านง่าย (เช่น
web-server-sgหรือweb_server_sg) - หลีกเลี่ยงชื่อทั่วไป:
serverให้ข้อมูลน้อยกว่าapp-frontend-server
ชื่อทรัพยากรท้องถิ่นของ Terraform ควรไม่ซ้ำกันภายในโมดูลเดียวกัน
แนวทางการตั้งชื่อตัวแปร
ตัวแปรช่วยให้การกำหนดค่าของคุณยืดหยุ่น การตั้งชื่ออย่างเหมาะสมจึงเป็นสิ่งสำคัญ:
- ใช้ตัวพิมพ์เล็กและขีดล่าง: นี่เป็นรูปแบบที่ใช้กันทั่วไปที่สุด (เช่น
instance_type,vpc_id) - ระบุให้ชัดเจน: ตัวแปรนี้ควบคุมอะไร
- เพิ่มคำอธิบาย: อธิบายวัตถุประสงค์ของตัวแปรเพื่อความชัดเจน
ชื่อตัวแปรที่ดีช่วยให้ผู้อื่นเข้าใจว่าโมดูลของคุณต้องการอินพุตใด
การตั้งชื่อค่าเอาต์พุต
เอาต์พุตจะแสดงข้อมูลสำคัญเกี่ยวกับโครงสร้างพื้นฐานที่คุณนำไปใช้งาน การตั้งชื่ออย่างสอดคล้องกันช่วยผู้ใช้งาน:
- ใช้ตัวพิมพ์เล็กและขีดล่าง: คล้ายกับตัวแปร เช่น
web_server_ip - สื่อความหมายของค่า: ค่านี้ให้ข้อมูลอะไร
- เพิ่มคำอธิบาย: จำเป็นสำหรับเอาต์พุตของโมดูล เพื่ออธิบายว่าเอาต์พุตเหล่านั้นส่งคืนอะไร
ตัวอย่าง: การกำหนดค่าอย่างง่าย
ไฟล์ main.tf ฉบับสมบูรณ์นี้สาธิตแนวทางการตั้งชื่อที่ดีสำหรับทรัพยากร ตัวแปร และเอาต์พุต คุณสามารถเรียกใช้ terraform init และ terraform plan กับไฟล์นี้ได้
terraform {
required_providers {
null = {
source = "hashicorp/null"
version = "~> 3.0"
}
}
}
resource "null_resource" "example_web_server" {
# Descriptive resource name
triggers = {
always_run = timestamp()
}
}
variable "app_environment" {
description = "The application's deployment environment (e.g., dev, prod)."
type = string
default = "development"
}
output "resource_unique_id" {
description = "The unique ID of the example null resource."
value = null_resource.example_web_server.id
}การจัดโครงสร้างโมดูล Terraform
สำหรับส่วนประกอบที่นำกลับมาใช้ซ้ำได้ โมดูลจะมีโครงสร้างที่ชัดเจนเป็นของตนเอง:
- โมดูลราก: ไดเรกทอรีระดับบนสุดที่มีการกำหนดค่าหลักของคุณ
- โมดูลย่อย: ไดเรกทอรีย่อยที่แต่ละแห่งมี
main.tf,variables.tf,outputs.tfและไฟล์อื่น ๆ เป็นของตนเอง - README.md: จำเป็นสำหรับอธิบายวัตถุประสงค์ อินพุต และเอาต์พุตของโมดูล
วิธีนี้ทำให้โมดูลมีทุกอย่างในตัวเองและนำกลับมาใช้ซ้ำได้ง่าย
การจัดระเบียบโฟลเดอร์โครงการ
นอกเหนือจากการจัดระเบียบไฟล์แล้ว การจัดโฟลเดอร์โครงการก็มีความสำคัญอย่างยิ่ง โดยเฉพาะการตั้งค่าขนาดใหญ่:
- แยกสภาพแวดล้อม: มีโฟลเดอร์เฉพาะสำหรับ
dev,staging,prodโดยแต่ละโฟลเดอร์มีการกำหนดค่าของตนเอง - โฟลเดอร์โมดูลส่วนกลาง: มีไดเรกทอรี
modulesสำหรับโมดูลแบบกำหนดเองที่นำกลับมาใช้ซ้ำได้ - โฟลเดอร์รากสำหรับผู้ให้บริการ: โดยทั่วไปโฟลเดอร์ระดับบนสุดจะกำหนดผู้ให้บริการและแบ็กเอนด์สถานะ
วิธีนี้ช่วยป้องกันการคลาดเคลื่อนของการกำหนดค่าและทำให้จัดการสภาพแวดล้อมต่าง ๆ ได้ง่ายขึ้น
ตัวอย่างโฟลเดอร์โครงการ
โครงการ Terraform ที่มีหลายสภาพแวดล้อมโดยทั่วไปอาจมีลักษณะดังนี้ ซึ่งช่วยแยกส่วนและนำกลับมาใช้ซ้ำได้อย่างชัดเจน:
.
├── modules/
│ ├── vpc/
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ └── outputs.tf
│ └── ec2-instance/
│ ├── main.tf
│ └── variables.tf
├── environments/
│ ├── dev/
│ │ └── main.tf
│ ├── staging/
│ │ └── main.tf
│ └── prod/
│ └── main.tf
└── README.mdตรวจสอบความเข้าใจ
ข้อใดต่อไปนี้เป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับการตั้งชื่อตัวแปรอินพุตของ Terraform ที่ระบุจำนวนอินสแตนซ์
ทบทวน: โครงสร้างและการตั้งชื่อ
เราได้เรียนรู้ว่าโค้ด Terraform ที่มีโครงสร้างดีและตั้งชื่ออย่างสอดคล้องกันมีความสำคัญต่อการอ่าน การบำรุงรักษา และการทำงานร่วมกันเป็นทีม
- จัดระเบียบไฟล์ลงใน
main.tf,variables.tf,outputs.tf - ใช้ชื่อที่สื่อความหมาย เป็นตัวพิมพ์เล็กและคั่นด้วยขีดล่างสำหรับทรัพยากร ตัวแปร และเอาต์พุต
- จัดโครงสร้างโมดูลและโฟลเดอร์โครงการเพื่อให้ใช้ซ้ำได้และแยกสภาพแวดล้อมออกจากกัน
แนวทางเหล่านี้เป็นพื้นฐานสำหรับการจัดการ IaC อย่างมีประสิทธิภาพ!
คำถามที่พบบ่อย
บทเรียน “โครงสร้างโค้ดและหลักเกณฑ์การตั้งชื่อ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “โครงสร้างโค้ดและหลักเกณฑ์การตั้งชื่อ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างโค้ดและหลักเกณฑ์การตั้งชื่อ
- การควบคุมเวอร์ชันด้วย Git
- การทำงานเป็นทีมและกระบวนการทำงาน
- เอกสารประกอบและกระบวนการทำงานแบบบริการตนเอง