YAML ระดับกลาง

CI/CD สำหรับ Machine Learning

Ravi Bhadauria

Machine Learning Engineer

สตริงหลายบรรทัด: รูปแบบ Block scalar

  • แทนสตริงหลายบรรทัดหรือข้อความบล็อก
    • โค้ดสั้น (คำสั่ง shell)
    • ย่อหน้า (log)
    • ไฟล์คอนฟิก

แผนภูมิลำดับชั้นของ YAML Block string โดยไฮไลต์โหนดราก "Block String"

CI/CD สำหรับ Machine Learning

ตัวบ่งชี้สไตล์ - literal

  • Literal style (|): คงการขึ้นบรรทัดใหม่และการย่อหน้า
  • เหมาะสำหรับเขียนคำสั่ง shell
commands: |
  echo "Running python script..."
  python3 script.py

แผนภูมิลำดับชั้นของ YAML Block string โดยไฮไลต์โหนดใบ "Literal Style"

CI/CD สำหรับ Machine Learning

ตัวอย่าง Literal style

ตัวอย่าง YAML ข้อความในรูปแบบ literal multiline โดยมีสัญลักษณ์ "|" นำหน้า

ผลลัพธ์ของข้อความที่เขียนในรูปแบบ YAML literal multiline

1 https://yaml-multiline.info/
CI/CD สำหรับ Machine Learning

ตัวบ่งชี้สไตล์ - fold

  • Fold style (>): ลบการขึ้นบรรทัดใหม่
  • เหมาะสำหรับเขียนข้อความแบบย่อหน้า
message: >
  Successfully executed the code!
  All processes completed 
  without any errors.
  The results have been saved 
  in the designated
  output directory.

แผนภูมิลำดับชั้นของ YAML Block string โดยไฮไลต์โหนดใบ "Fold Style"

CI/CD สำหรับ Machine Learning

ตัวอย่าง Fold style

ตัวอย่าง YAML ข้อความในรูปแบบ fold multiline โดยมีสัญลักษณ์ ">" นำหน้า

ผลลัพธ์ของข้อความที่เขียนในรูปแบบ YAML fold multiline

1 https://yaml-multiline.info/
CI/CD สำหรับ Machine Learning

Chomping indicators

  • ควบคุมพฤติกรรมของการขึ้นบรรทัดใหม่ที่ ท้าย สตริง
  • เพิ่มต่อท้ายตัวบ่งชี้สไตล์
  • clip: โหมดเริ่มต้น เพิ่มบรรทัดใหม่หนึ่งบรรทัดท้ายสตริง
    • ไม่ต้องใช้สัญลักษณ์เพิ่มเติม

แผนภูมิลำดับชั้นของ YAML Block string โดยไฮไลต์โหนดใบ "Clip Chomping indicator"

CI/CD สำหรับ Machine Learning

Chomping indicators - strip

  • strip (-): ลบบรรทัดใหม่ทั้งหมดท้ายสตริง

แผนภูมิลำดับชั้นของ YAML Block string โดยไฮไลต์โหนดใบ "Strip Chomping indicator"

CI/CD สำหรับ Machine Learning

ตัวอย่าง Strip chomping

ตัวอย่าง YAML ข้อความในรูปแบบ literal multiline แบบ strip chomping โดยมีสัญลักษณ์ "|-" นำหน้า

ผลลัพธ์ของข้อความในรูปแบบ YAML literal multiline แบบ strip chomping ซึ่งลบบรรทัดใหม่ทั้งหมดท้ายสตริง

1 https://yaml-multiline.info/
CI/CD สำหรับ Machine Learning

Chomping indicators - keep

  • keep (+): คงบรรทัดใหม่ทั้งหมดท้ายสตริง

แผนภูมิลำดับชั้นของ YAML Block string โดยไฮไลต์โหนดใบ "Keep Chomping indicator"

CI/CD สำหรับ Machine Learning

ตัวอย่าง Keep chomping

ตัวอย่าง YAML ข้อความในรูปแบบ literal multiline แบบ keep chomping โดยมีสัญลักษณ์ "|+" นำหน้า

ผลลัพธ์ของข้อความในรูปแบบ YAML literal multiline แบบ keep chomping ซึ่งไม่ลบบรรทัดใหม่ท้ายสตริง

1 https://yaml-multiline.info/
CI/CD สำหรับ Machine Learning

การแทรกค่าแบบไดนามิก

  • Expressions ช่วยให้ parser แทนค่าแบบไดนามิก
  • การใช้งาน:
    • Environment variables
    • การอ้างอิงส่วนอื่นใน YAML
  • โดยทั่วไปเขียนในรูปแบบ ${{ ... }}
database:
  host: ${{ config.database.host }}
  port: ${{ config.database.port }}
  username: ${{ config.database.username }}
  password: ${{ config.database.password }}
CI/CD สำหรับ Machine Learning

YAML แบบหลายเอกสาร

  • YAML เอกสารหลายรายการในไฟล์เดียว
  • แต่ละเอกสารมีเนื้อหา YAML ที่ถูกต้อง
  • จัดกลุ่มเอกสารที่เกี่ยวข้องได้ง่าย
  • แยกเอกสารด้วยเส้นประสามตัว –––
___
- name: John
  age: 30
___
- name: Jane
  age: 28
___
- name: Bob
  age: 35
  occupation: Developer
CI/CD สำหรับ Machine Learning

สรุป

ชื่อ สัญลักษณ์ YAML
Literal Style Indicator |
Fold Style Indicator >
Strip Chomping Indicator
Keep Chomping Indicator +
Expressions ${{ ... }}
Multi-document YAML –––
CI/CD สำหรับ Machine Learning

มาฝึกกันเถอะ!

CI/CD สำหรับ Machine Learning

Preparing Video For Download...