fail และตัวป้องกันการตรวจสอบแบบกำหนดเอง
หยุดการเรนเดอร์พร้อมข้อผิดพลาดที่ชัดเจนและแก้ไขได้
fail และตัวป้องกันการตรวจสอบแบบกำหนดเอง เป็นบทเรียน Helm Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Helm Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน
การป้องกันอินพุตที่ไม่ถูกต้อง
ชาร์ตควรปฏิเสธการตั้งค่าที่ไร้เหตุผลตั้งแต่เนิ่น ๆ เทมเพลตที่ดีสามารถหยุดการเรนเดอร์และบอกผู้ใช้ได้อย่างชัดเจนว่าเกิดอะไรขึ้น
หยุดการทำงานด้วย fail
ฟังก์ชัน fail จะหยุดการเรนเดอร์เทมเพลตทันที และพิมพ์ข้อความที่คุณระบุให้เป็นข้อผิดพลาด
{{ fail "service.port must be set" }}ป้องกันด้วย if
ครอบ fail ไว้ใน if เพื่อให้ทำงานเฉพาะเมื่อค่าใดค่าหนึ่งหายไปหรือไม่ถูกต้อง และไม่กระทบการติดตั้งที่ถูกต้อง
{{ if not .Values.image }}{{ fail "image is required" }}{{ end }}required สำหรับค่าเดียว
สำหรับค่าบังคับเพียงค่าเดียว required จะเรียบง่ายกว่า โดยคืนค่ากลับมาหรือทำให้ล้มเหลวพร้อมข้อความของคุณเมื่อค่านั้นว่างเปล่า
{{ required "image.tag is required" .Values.image.tag }}fail เทียบกับ required
ใช้ required เพื่อบังคับค่าหนึ่งค่าในบรรทัดเดียว และใช้ fail เมื่อการตรวจสอบครอบคลุมหลายเงื่อนไขหรือต้องใช้ตรรกะที่กำหนดเอง
การตรวจสอบค่า Enum
คุณสามารถตรวจสอบว่าค่าเป็นหนึ่งในชุดค่าที่อนุญาตหรือไม่ และแสดงข้อผิดพลาดอย่างชัดเจนเมื่อผู้ใช้เลือกสิ่งที่ ไม่รองรับ
{{ if not (has .Values.tier (list "free" "pro")) }}{{ fail "tier must be free or pro" }}{{ end }}ข้อความที่ช่วยแก้ปัญหา
เขียนข้อความล้มเหลวในลักษณะคำแนะนำ โดยระบุค่าและวิธีแก้ไข เพื่อไม่ให้ผู้ใช้ต้องคาดเดาว่าเหตุใดการติดตั้งจึง หยุดลง
การตรวจสอบชุดค่าผสม
กฎบางอย่างเกี่ยวข้องกับสองฟิลด์ ตัว guard สามารถทำให้ล้มเหลวได้เมื่อฟีเจอร์ที่เปิดใช้งานไม่มีค่าประกอบที่ฟีเจอร์นั้นต้องพึ่งพา
{{ if and .Values.tls.enabled (not .Values.tls.secret) }}{{ fail "tls.secret needed when tls.enabled" }}{{ end }}รวมตัวตรวจสอบไว้ที่เดียว
การใส่การตรวจสอบไว้ในเทมเพลตที่ตั้งชื่อใน _helpers.tpl ช่วยให้การตรวจสอบอยู่ในที่เดียวและไม่กระจายอยู่ในไฟล์ทรัพยากรทุกไฟล์
{{- include "mychart.validate" . -}}ทดสอบตัวตรวจสอบ
เรียกใช้ helm template ด้วยค่าที่ไม่ถูกต้อง เพื่อยืนยันว่าตัวตรวจสอบแต่ละตัวทำงานพร้อมข้อความที่ชัดเจน ก่อนที่สิ่งใดจะไปถึงคลัสเตอร์
ตรวจสอบด้วยสคีมาด้วย
สำหรับกฎเกี่ยวกับชนิดและช่วง ค่าไฟล์ values.schema.json จะช่วยเสริม fail ด้วยการปฏิเสธอินพุตที่ไม่ถูกต้องก่อนที่เทมเพลตใด ๆ จะเริ่มทำงาน
ตรวจสอบอย่างรวดเร็ว
ตรวจสอบตัวช่วยสำหรับการตรวจสอบความถูกต้องอย่างรวดเร็ว
สรุป
คุณได้เรียนรู้การหยุดการติดตั้งที่ไม่ถูกต้องตั้งแต่เนิ่น ๆ โดยใช้ fail สำหรับการตรวจสอบหลายเงื่อนไขแบบกำหนดเอง และใช้ required สำหรับค่าบังคับเพียงค่าเดียว 🎉
คำถามที่พบบ่อย
บทเรียน “fail และตัวป้องกันการตรวจสอบแบบกำหนดเอง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “fail และตัวป้องกันการตรวจสอบแบบกำหนดเอง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Helm Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “fail และตัวป้องกันการตรวจสอบแบบกำหนดเอง”
หยุดการเรนเดอร์พร้อมข้อผิดพลาดที่ชัดเจนและแก้ไขได้ คุณปฏิบัติ Helm Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Helm Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Helm Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “fail และตัวป้องกันการตรวจสอบแบบกำหนดเอง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Helm Academy นี้ได้ไหม
ได้ บทเรียน Helm Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ผสานข้อมูลเชิงลึกด้วย mergeOverwrite และ dict
- tpl: ประมวลผลสตริงจากค่า
- วนซ้ำไฟล์ด้วย range บน .Files.Glob
- fail และตัวป้องกันการตรวจสอบแบบกำหนดเอง