0Pricing
Helm Academy · บทเรียน

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ผสานข้อมูลเชิงลึกด้วย mergeOverwrite และ dict
  2. tpl: ประมวลผลสตริงจากค่า
  3. วนซ้ำไฟล์ด้วย range บน .Files.Glob
  4. fail และตัวป้องกันการตรวจสอบแบบกำหนดเอง
← กลับไปที่ Helm Academy