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

tpl: ประมวลผลสตริงจากค่า

การประเมินนิพจน์แม่แบบที่จัดเก็บไว้ในค่า

tpl: ประมวลผลสตริงจากค่า เป็นบทเรียน Helm Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Helm Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน

เทมเพลตภายในค่า

บางครั้งค่าใน values.yaml เองมีไวยากรณ์เทมเพลตอยู่ด้วย โดยค่าเริ่มต้น Helm จะถือว่าค่านั้นเป็นสตริงธรรมดาและจะไม่ประเมินผล

พบกับฟังก์ชัน tpl

ฟังก์ชัน tpl รับสตริงและบริบท จากนั้นแสดงผลสตริงนั้นเป็นเทมเพลต Go ณ จุดที่คุณเรียกใช้ฟังก์ชัน

{{ tpl .Values.greeting . }}

ฟังก์ชันนี้ต้องมีบริบท

อาร์กิวเมนต์ที่สองของ tpl คือขอบเขตที่ใช้ระหว่างการแสดงผล การส่ง root dot ทำให้สตริงเข้าถึง Values และ Release ได้

{{ tpl "Hello {{ .Release.Name }}" . }}

ค่าที่มีเทมเพลต

ตอนนี้ผู้ใช้สามารถเก็บสตริงที่เปลี่ยนแปลงได้ไว้ใน values เช่น ชื่อโฮสต์ที่สร้างจากชื่อรีลีส และให้สตริงนั้นขยายค่าเมื่อแสดงผล

host: "{{ .Release.Name }}.example.com"

แสดงผลค่านั้น

ในเทมเพลตของคุณ ให้ส่งฟิลด์นั้นผ่าน tpl พร้อมบริบทระดับราก เพื่อเปลี่ยนตัวแทนที่จัดเก็บไว้ให้เป็นค่าจริง

host: {{ tpl .Values.host . | quote }}

เหตุใดจึงอ้างอิงโดยตรงไม่ได้

การอ้างอิงโดยตรงจะแสดงวงเล็บปีกกาดิบออกมาเป็นข้อความ มีเพียง tpl เท่านั้นที่ประเมินคำสั่งที่ฝังอยู่ภายในสตริงที่จัดเก็บไว้ได้

การเรนเดอร์ไฟล์ด้วย

นอกจากนี้ยังส่งเนื้อหาไฟล์ให้ tpl ได้ ทำให้ไฟล์การตั้งค่าที่รวมไว้สามารถมีตัวยึดตำแหน่งเฉพาะรุ่นที่เผยแพร่ได้

{{ tpl (.Files.Get "config.tpl") . }}

การส่งขอบเขตแบบกำหนดเอง

บริบทไม่จำเป็นต้องเป็นรากเสมอไป คุณสามารถส่ง dict ใดก็ได้ เพื่อให้สตริงที่เรนเดอร์มองเห็นเฉพาะตัวแปรที่คุณเลือกไว้

{{ tpl .Values.msg (dict "name" "api") }}

กรณีใช้งานจริง

ชาร์ตมักเปิดให้ผู้ใช้สร้างเทมเพลตสำหรับโฮสต์หรือคำอธิบายประกอบของ ingress ด้วยวิธีนี้ โดยเก็บการตั้งค่าที่ยืดหยุ่นไว้ใน values แทนที่จะใส่ไว้ในเทมเพลต

ระวังข้อผิดพลาด

หากสตริงที่เก็บไว้มีข้อผิดพลาดในการพิมพ์ tpl จะล้มเหลวขณะเรนเดอร์ ดังนั้นหลังจากเพิ่มค่าที่เป็นเทมเพลตแล้ว ควรทดสอบด้วย helm template

ใช้ร่วมกับ quote

เนื่องจากโฮสต์ที่เป็นเทมเพลตอาจมีจุดหรือโคลอนอยู่ด้วย จึงควรส่งผลลัพธ์ของ tpl ผ่าน quote เพื่อให้ค่าของ YAML สุดท้ายยังคงเป็นสตริงที่ปลอดภัย

host: {{ tpl .Values.host . | quote }}

ตรวจสอบอย่างรวดเร็ว

ตรวจสอบพฤติกรรมของ tpl อย่างรวดเร็ว

สรุป

คุณได้เรียนรู้ว่า tpl ใช้ประเมินสตริงเทมเพลตที่เก็บอยู่ในค่าหรือไฟล์ โดยใช้บริบทที่คุณส่งให้ เช่น จุดราก 🎉

คำถามที่พบบ่อย

บทเรียน “tpl: ประมวลผลสตริงจากค่า” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “tpl: ประมวลผลสตริงจากค่า” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Helm Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “tpl: ประมวลผลสตริงจากค่า”

การประเมินนิพจน์แม่แบบที่จัดเก็บไว้ในค่า คุณปฏิบัติ Helm Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “tpl: ประมวลผลสตริงจากค่า” ใช้เวลานานแค่ไหน

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

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

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

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

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