YAML เป็นรูปแบบการเขียนข้อมูลที่เน้นให้ “มนุษย์อ่านง่าย” และเป็นที่นิยมอย่างมากในการเขียนไฟล์ Configuration เช่น Docker, Kubernetes หรือ Ansible
🏗️ โครงสร้างพื้นฐานของ YAML
กฎเหล็กที่สำคัญที่สุดของ YAML คือ “การย่อหน้า “ ครับ เราจะใช้ Space แทนการใช้ปีกกา { } หรือ Tag < > แบบใน JSON หรือ XML
- Key-Value Pairs
ข้อมูลพื้นฐานจะอยู่ในรูปkey: valueโดยต้องมีช่องว่างหลังเครื่องหมายโคลอน:เสมอserver_name: production_server port: 8080 enabled: true
- Lists
การสร้างรายการจะใช้เครื่องหมายขีดกลาง-นำหน้าtools: - Docker - Nginx - Terraform
- Nested Objects
ใช้การย่อหน้าเพื่อบอกว่าข้อมูลชุดนี้เป็นส่วนหนึ่งของหัวข้อด้านบนdatabase: client: postgresql connection: host: 127.0.0.1 user: admin
💡 เทคนิคการเขียนขั้นสูง
การเขียนข้อความยาว ๆ
หากคุณมีข้อความยาว ๆ เช่น สคริปต์หรือคำบรรยาย คุณสามารถเลือกใช้สัญลักษณ์ได้ 2 แบบ
|: เก็บรูปแบบการขึ้นบรรทัดใหม่ไว้ทั้งหมด>: เปลี่ยนการขึ้นบรรทัดใหม่ให้เป็นช่องว่าง
description: | บรรทัดที่ 1 บรรทัดที่ 2 (จะยังคงอยู่แบบนี้) summary: > ข้อความที่พิมพ์แยกบรรทัดกันแบบนี้ จะถูกรวมเป็นบรรทัดเดียวเมื่ออ่านค่า
⚠️ ข้อควรระวัง
- ห้ามใช้ Tab: ให้ใช้การเคาะ Space เท่านั้น เพราะตัวอ่าน YAML ส่วนใหญ่จะ Error ถ้าเจอ Tab
- Data Types: *
true/falseไม่ต้องมีเครื่องหมายคำพูด- ตัวเลขไม่ต้องมีเครื่องหมายคำพูด
- ถ้าข้อความมีอักขระพิเศษ เช่น
:หรือ#ให้ครอบด้วยเครื่องหมายคำพูด" "หรือ' '
- Comments: ใช้เครื่องหมาย
#สำหรับการเขียนคอมเมนต์
🛠️ ตัวอย่างการใช้งานจริง
การเก็บค่า Config ไว้ในรูปแบบ YAML จะช่วยให้คุณ Backup และไล่ดูประวัติการแก้ไขได้ง่ายขึ้นครับ
services: web_server: image: nginx:latest ports: - "80:80" volumes: - ./config/nginx.conf:/etc/nginx/nginx.conf:ro - ./html:/usr/share/nginx/html restart: always
Pro Tip: ก่อนจะนำไฟล์ YAML ไปใช้งานจริง แนะนำให้นำไปวางใน YAML Lint เพื่อตรวจสอบว่าโครงสร้างการย่อหน้าถูกต้องหรือไม่ครับ
อ่านเพิ่มเติม