tpl: ประมวลผลสตริงจากค่า
การประเมินนิพจน์แม่แบบที่จัดเก็บไว้ในค่า
tpl: ประมวลผลสตริงจากค่า เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “tpl: ประมวลผลสตริงจากค่า”
การประเมินนิพจน์แม่แบบที่จัดเก็บไว้ในค่า คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “tpl: ประมวลผลสตริงจากค่า” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ผสานข้อมูลเชิงลึกด้วย mergeOverwrite และ dict
- tpl: ประมวลผลสตริงจากค่า
- วนซ้ำไฟล์ด้วย range บน .Files.Glob
- fail และตัวป้องกันการตรวจสอบแบบกำหนดเอง