กับดักการเยื้องบรรทัดใน YAML ที่พบบ่อย
หลีกเลี่ยงข้อผิดพลาดที่ทำให้เอาต์พุตที่ประมวลผลแล้วใช้ไม่ได้
กับดักการเยื้องบรรทัดใน YAML ที่พบบ่อย เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
การเยื้องคือโครงสร้าง
ใน YAML ช่องว่างไม่ใช่เพียงการตกแต่ง การเยื้องเป็นตัวกำหนดเพียงอย่างเดียวว่าสิ่งใดซ้อนอยู่ใต้สิ่งใด ดังนั้นช่องว่างที่ผิดเพียงหนึ่งตำแหน่งอาจเปลี่ยนโครงสร้างแมนนิเฟสต์ทั้งหมดของคุณได้ 😬
เทมเพลตทำให้ซับซ้อนขึ้น
เมื่อแอ็กชันแทรกค่าหรือบล็อก ข้อความนั้นจะไปอยู่ที่คอลัมน์เดียวกับตำแหน่งของแอ็กชัน หากกะตำแหน่งผิด YAML ที่เรนเดอร์แล้วจะเสียหาย
ห้ามใช้แท็บ
YAML ห้ามใช้แท็บสำหรับการเยื้องโดยเด็ดขาด แท็บที่หลงเหลือเพียงหนึ่งตัวจะทำให้เกิดข้อผิดพลาดในการแยกวิเคราะห์ที่เข้าใจได้ยาก ดังนั้นให้ตั้งค่าเอดิเตอร์ให้แทรกช่องว่าง
แทรกบล็อก
เมื่อคุณนำค่าหลายบรรทัดไปใส่ในโครงสร้าง ค่านั้นจะไม่จัดแนวให้อัตโนมัติ คุณต้องเพิ่มช่องว่างนำหน้าที่เหมาะสมด้วยฟังก์ชัน indent
{{ .Values.config | indent 4 }}indent นับจำนวนช่องว่าง
ตัวเลขหลัง indent คือจำนวนช่องว่างที่จะเติมไว้หน้าทุกบรรทัดของค่า ให้ตรงกับระดับความลึกที่บล็อกควรอยู่
กับดักเรื่องบรรทัดใหม่
ข้อผิดพลาดที่พบบ่อยคือ indent ไม่ได้เพิ่มบรรทัดใหม่ไว้ข้างหน้า ทำให้บรรทัดแรกติดกับคีย์ YAML ของคุณ ปัญหานี้ทำให้เอกสารเสียหายโดยไม่แสดงข้อผิดพลาด
data:
{{ .Values.config | indent 2 }}nindent ช่วยแก้ปัญหา
ชาร์ตส่วนใหญ่จึงใช้ nindent แทน โดยจะเพิ่มบรรทัดใหม่ไว้ข้างหน้าก่อน แล้วจึงเยื้อง ทำให้บล็อกเริ่มต้นอย่างเรียบร้อยบนบรรทัดของตัวเอง
data: {{ .Values.config | nindent 2 }}ระวังคอลัมน์ของแอ็กชัน
ช่องว่างหน้า {{ ในซอร์สของคุณส่งผลต่อบรรทัดที่แอ็กชันจะแสดงผล ควบคุมแอ็กชันต่าง ๆ ให้อยู่ในระดับความลึกที่ผลลัพธ์ควรอยู่
รายการต้องมีขีดกลาง
เมื่อค่าจากเทมเพลตกลายเป็นรายการ แต่ละรายการย่อยต้องมีขีดกลางในระดับการเยื้องที่ถูกต้อง โดยทั่วไป toYaml และ nindent จะจัดการเรื่องนี้ให้คุณได้อย่างเรียบร้อย
env:
{{ toYaml .Values.env | nindent 2 }}เรนเดอร์แล้วตรวจดู
ข้อผิดพลาดด้านการเยื้องมองไม่เห็นในซอร์ส แต่เห็นได้ชัดในผลลัพธ์ ให้เรนเดอร์ชาร์ตแล้วตรวจดู YAML ดิบเพื่อหาบล็อกที่จัดแนวไม่ตรงกันได้อย่างรวดเร็ว 👀
helm template ./mychartให้ lint ช่วย
เรียกใช้ helm lint เพื่อค้นหาปัญหา YAML และการเยื้องจำนวนมาก ก่อนที่คุณจะลองติดตั้งชาร์ตบนคลัสเตอร์เสียอีก
helm lint ./mychartตรวจสอบอย่างรวดเร็ว
บล็อกที่คุณแทรกยังคงต่อรวมเข้ากับคีย์ YAML ที่อยู่ด้านบน
สรุป
ตอนนี้คุณสามารถหลีกเลี่ยงกับดักคลาสสิกได้แล้ว ได้แก่ ห้ามใช้แท็บ ใช้ nindent สำหรับบล็อกที่จัดรูปแบบอย่างเรียบร้อย และเรนเดอร์หรือใช้ lint เพื่อตรวจสอบ YAML เสมอ 🎯
คำถามที่พบบ่อย
บทเรียน “กับดักการเยื้องบรรทัดใน YAML ที่พบบ่อย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “กับดักการเยื้องบรรทัดใน YAML ที่พบบ่อย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “กับดักการเยื้องบรรทัดใน YAML ที่พบบ่อย”
หลีกเลี่ยงข้อผิดพลาดที่ทำให้เอาต์พุตที่ประมวลผลแล้วใช้ไม่ได้ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “กับดักการเยื้องบรรทัดใน YAML ที่พบบ่อย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ไวยากรณ์ Action แบบวงเล็บปีกกาคู่
- ตัดช่องว่างด้วยเครื่องหมายขีด
- คอมเมนต์และการใส่เครื่องหมายคำพูดในเทมเพลต
- กับดักการเยื้องบรรทัดใน YAML ที่พบบ่อย