แทรก Partial ด้วย template และ include
เหตุใด include จึงประกอบร่วมกับ Pipeline ได้ แต่ template ทำไม่ได้
แทรก Partial ด้วย template และ include เป็นบทเรียน Helm Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Helm Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน
การเรียกส่วนย่อย
ส่วนย่อยที่ประกาศไว้จะไม่ทำอะไรจนกว่าคุณจะเรียกใช้ เฮลม์มีแอ็กชันสองตัวสำหรับงานนี้ ได้แก่แม่แบบและการแทรก
แอ็กชันแม่แบบ
แอ็กชันแม่แบบจะเรนเดอร์ส่วนย่อยที่มีชื่อไว้ในตำแหน่งนั้น คุณต้องส่งชื่อส่วนย่อยและออบเจ็กต์ขอบเขตที่ส่วนย่อยจะใช้สำหรับอ่านข้อมูล
{{ template "mychart.labels" . }}ข้อจำกัดของแม่แบบ
แอ็กชันแม่แบบเป็นคำสั่ง ไม่ใช่นิพจน์ ผลลัพธ์จะถูกส่งตรงไปยังเอกสารและไม่สามารถส่งผ่านไปป์ไปยังฟังก์ชันอื่นได้
เข้าสู่การแทรก
เฮลม์เพิ่มฟังก์ชันการแทรกเพื่อแก้ข้อจำกัดนี้ ฟังก์ชันนี้เรนเดอร์ส่วนย่อยเดียวกัน แต่ส่งผลลัพธ์กลับมาเป็นสตริงที่คุณนำไปแปลงต่อได้
{{ include "mychart.labels" . }}การแทรกประกอบกับไปป์ไลน์ได้
เนื่องจากการแทรกส่งคืนค่า คุณจึงส่งค่าดังกล่าวผ่านไปป์ไปยังฟังก์ชันอย่างการเยื้องหรือการเยื้องพร้อมบรรทัดใหม่ได้ นี่คือเหตุผลที่แผนภูมิมักเลือกใช้การแทรก
{{ include "mychart.labels" . | indent 4 }}เหตุผลที่แท้จริงคือการเยื้อง
YAML ที่แทรกเข้ามาต้องอยู่ในระดับการเยื้องที่ถูกต้อง มีเพียงการแทรกเท่านั้นที่สามารถส่งผ่านไปป์ไปยังการเยื้องพร้อมบรรทัดใหม่ได้ จึงสร้างผลลัพธ์ที่ซ้อนกันอย่างถูกต้องได้ทุกครั้ง
metadata:
labels:
{{- include "mychart.labels" . | nindent 4 }}อาร์กิวเมนต์ขอบเขต
จุดหลังชื่อส่วนย่อยคือขอบเขตที่คุณส่งให้ส่วนย่อยนั้น การส่งจุดระดับรากทำให้ส่วนย่อยอ่าน .Values และ .Release ได้
{{ include "mychart.fullname" . }}ตัวช่วยสร้างชื่อ
ในตัวอย่างนี้ ส่วนย่อยจะส่งคืนชื่อ และการทำให้ใช้งานได้จะใช้การแทรกเพื่อใส่ชื่อนั้นลงในข้อมูลเมตาของการนำไปใช้งาน มีแหล่งข้อมูลจริงเพียงแห่งเดียว แต่มีผู้เรียกใช้ได้หลายราย
metadata:
name: {{ include "mychart.fullname" . }}แม่แบบยังมีประโยชน์ในบางกรณี
คุณยังพบแม่แบบได้ทั่วไป โดยมักใช้กับส่วนย่อยที่ปล่อยบล็อกเต็มของตัวเองลงบนบรรทัดใหม่ ซึ่งไม่จำเป็นต้องส่งผ่านไปป์
{{ template "mychart.notes" . }}หลักปฏิบัติโดยทั่วไป
หากผลลัพธ์ต้องมีการเยื้องหรือประมวลผลภายหลัง ให้เลือกใช้ include ใช้คำสั่ง template แบบธรรมดาเฉพาะเมื่อไม่จำเป็นต้องทำสิ่งเหล่านั้นจริง ๆ
แสดงผลเพื่อตรวจสอบ
เรียกใช้ helm template . แล้วตรวจสอบว่าเทมเพลตย่อยถูกขยายพร้อมการเยื้องตามที่คาดไว้ YAML ที่จัดแนวไม่ตรงคือข้อผิดพลาดคลาสสิกในกรณีนี้
helm template my-release .ตรวจสอบอย่างรวดเร็ว
คุณต้องแสดงผลเทมเพลตย่อยและเยื้องไว้ใต้คีย์ labels ควรใช้คำสั่งใด
สรุป: template กับ include
ทั้งสองคำสั่งเรียกใช้เทมเพลตย่อย แต่ include คืนค่าสตริงที่นำไปต่อเป็นสายได้ ขณะที่ template เพียงส่งผลลัพธ์แทรกในบรรทัด ควรใช้ include ร่วมกับ nindent เพื่อให้ YAML สะอาดและเป็นระเบียบ ✨
คำถามที่พบบ่อย
บทเรียน “แทรก Partial ด้วย template และ include” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “แทรก Partial ด้วย template และ include” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Helm Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “แทรก Partial ด้วย template และ include”
เหตุใด include จึงประกอบร่วมกับ Pipeline ได้ แต่ template ทำไม่ได้ คุณปฏิบัติ Helm Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Helm Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Helm Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “แทรก Partial ด้วย template และ include” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Helm Academy นี้ได้ไหม
ได้ บทเรียน Helm Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- กำหนด Partial ด้วย define
- แทรก Partial ด้วย template และ include
- ตัวช่วย Fullname และ Labels มาตรฐาน
- ส่ง Scope เข้า Named Template