0Pricing
DevOps Bootcamp · บทเรียน

แทรก Partial ด้วย template และ include

เหตุใด include จึงประกอบร่วมกับ Pipeline ได้ แต่ template ทำไม่ได้

แทรก Partial ด้วย template และ include เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “แทรก Partial ด้วย template และ include”

เหตุใด include จึงประกอบร่วมกับ Pipeline ได้ แต่ template ทำไม่ได้ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “แทรก Partial ด้วย template และ include” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. กำหนด Partial ด้วย define
  2. แทรก Partial ด้วย template และ include
  3. ตัวช่วย Fullname และ Labels มาตรฐาน
  4. ส่ง Scope เข้า Named Template
← กลับไปที่ DevOps Bootcamp