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

วนซ้ำรายการและแผนที่ด้วย range

สร้าง YAML ที่ซ้ำกันจากชุดข้อมูล

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

ทำซ้ำโดยไม่ต้องคัดลอกและวาง

เมื่อค่าหนึ่งเก็บรายการไว้ คุณแทบไม่ต้องการพิมพ์แต่ละรายการด้วยตนเอง คำสั่ง range จะวนซ้ำผ่านชุดข้อมูลและสร้าง YAML สำหรับทุกรายการ

คำสั่ง range

ลูปจะเริ่มต้นด้วย {{ range SOMETHING }} และปิดท้ายด้วย {{ end }} บล็อกระหว่างนั้นจะแสดงผลหนึ่งครั้งต่อสมาชิกแต่ละตัวในชุดข้อมูล 🔁

{{ range .Values.hosts }}
- host: {{ . }}
{{ end }}

จุดจะกลายเป็นรายการ

ภายใน range จุดจะถูกผูกใหม่ให้เป็นสมาชิกปัจจุบัน ไม่ใช่ราก ดังนั้น {{ . }} จะแสดงผลรายการที่ลูปกำลังประมวลผลอยู่ในรอบนั้น

hosts:
  - api.example.com
  - web.example.com

วนซ้ำผ่านรายการแบบง่าย

เมื่อมีรายการสตริง range จะสร้างบรรทัด YAML หนึ่งบรรทัดต่อค่า ผลลัพธ์จึงเป็นรายการที่มีขนาดปรับตามข้อมูลและขับเคลื่อนด้วยค่าโดยสมบูรณ์

args:
{{ range .Values.flags }}
  - {{ . }}
{{ end }}

ดัชนีและค่า

ต้องการตำแหน่งด้วยใช่ไหม ให้เก็บทั้งสองค่าด้วยตัวแปรสองตัว ในแต่ละรอบ range จะส่ง ดัชนี ให้ก่อน แล้วจึงส่งค่า

{{ range $i, $v := .Values.ports }}
# port {{ $i }} is {{ $v }}
{{ end }}

วนซ้ำผ่านแมป

เมื่อวนซ้ำผ่านแมป ตัวแปรสองตัวจะกลายเป็น คีย์ และค่า วิธีนี้เหมาะอย่างยิ่งสำหรับเปลี่ยนแมปจาก values ให้เป็นป้ายกำกับหรือตัวแปรสภาพแวดล้อม

{{ range $key, $val := .Values.labels }}
{{ $key }}: {{ $val }}
{{ end }}

คีย์ของแมปเรียงตามตัวอักษร

Helm จะวนซ้ำคีย์ของแมปตามลำดับ ตัวอักษร ไม่ใช่ตามลำดับที่แทรกข้อมูล วิธีนี้ทำให้ผลลัพธ์ที่แสดงผลมีความคงที่และเปรียบเทียบความแตกต่างได้ง่ายในแต่ละครั้งที่เรียกใช้

เข้าถึงรากจากภายใน

เนื่องจากจุดกลายเป็นรายการแล้ว .Values จึงเข้าถึงไม่ได้จากภายในลูป ให้เก็บรากไว้ก่อนด้วย $ เพื่อให้ยังอ่านค่าได้

{{ range .Values.envs }}
name: {{ $.Release.Name }}-{{ . }}
{{ end }}

รายการว่างไม่แสดงผลสิ่งใด

หากชุดข้อมูลว่าง range จะไม่สร้างผลลัพธ์ใด ๆ และจะข้ามบล็อกของมันไป เมื่อไม่มีรายการ ก็ไม่มีเนื้อหาภายในลูป ซึ่งตรงกับสิ่งที่คุณต้องการ

ระวังการเยื้อง

แต่ละรอบต้องจัดแนวให้ตรงใต้คีย์แม่ ลูปมักใช้คู่กับตัวช่วย indent เพื่อให้ YAML ที่ทำซ้ำไปอยู่ในระดับความลึกที่ถูกต้อง 🧱

ใช้ range ร่วมกับ if

ซ้อน if ไว้ภายใน range เพื่อกรองข้อมูลขณะวนซ้ำ เฉพาะรายการที่ผ่านเงื่อนไขเท่านั้นจึงจะแสดงผลบล็อกของตนเอง ส่วนรายการอื่นจะถูกข้ามไป

{{ range .Values.users }}
{{ if .active }}
- {{ .name }}
{{ end }}
{{ end }}

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

คุณวนซ้ำด้วย {{ range .Values.hosts }} ผ่านรายการสตริง

สรุป

ตอนนี้คุณสามารถวนซ้ำด้วย range อ่านรายการผ่านจุดที่เปลี่ยนบริบท ดึงดัชนีหรือคีย์ และเข้าถึงรากด้วย $ ได้แล้ว การทำซ้ำอยู่ภายใต้การควบคุมของคุณแล้ว! 🎯

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

บทเรียน “วนซ้ำรายการและแผนที่ด้วย range” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “วนซ้ำรายการและแผนที่ด้วย range”

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

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

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

บทเรียน “วนซ้ำรายการและแผนที่ด้วย range” ใช้เวลานานแค่ไหน

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

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

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

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

  1. บล็อกเงื่อนไขด้วย if และ else
  2. ค่าความจริงและตัวดำเนินการในเงื่อนไข
  3. วนซ้ำรายการและแผนที่ด้วย range
  4. กำหนด Scope ของบล็อกด้วย with
← กลับไปที่ DevOps Bootcamp