Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

พื้นฐานของ YAML (101)

$
0
0

YAML เป็นอีกหนึ่งรูปแบบของข้อมูลที่ให้อ่านเข้าใจง่าย
ถูกใช้อย่างมากในโลกของ DevOps และ Container
ดังจะเห็นบ่อย ๆ ใน configuration ต่าง ๆ เช่น

  • Docker compose
  • Manifest file ของ Kubernetes
  • Mock server

ดังนั้นมาทำความรู้จักและเข้าใจเกี่ยวกับ YAML กันหน่อย

YAML (YAML Ain't Markup Language) คืออะไร

โดยเริ่มต้นย่อมาจาก Yet Another Markup Language
แต่เปลี่ยนมาเป็น YAML Ain't Markup Language
เพื่อทำให้ชัดเจนว่าแตกต่างจาก Markup Language นะ
เพราะว่ามันคือ Data Serialization Language

จะมีรูปแบบคล้ายกับ XML และ JSON แต่ใช้ syntax ที่น้อยหรือง่ายกว่า
เพื่อให้ใช้งานและดูแลได้ง่าย
และบอกว่าถูกออกแบบมาให้คนอ่านง่ายขึ้น
จริงไหมนะ ?

ปล. แต่ถ้าไม่ได้ใช้ Text Editor หรือ IDE ที่สนับสนุน YAML แล้ว
อาจจะทำให้คุณมีปัญหาได้ยกตัวอย่าง
เช่น เพียงแค่ผิด 1 space bar อาจจะใช้เวลาหาข้อผิดพลาดมากก็ได้

ความสามารถของ YAML ที่แจ่ม ๆ คือ

  • มี Build-in data type มาให้
  • Multi-document support นั่นคือ สามารถรวมหลาย ๆ ไฟล์ อยู่ด้วยกัน โดยคั่นด้วย dash 3 ตัว (---) หรือ === ก็ได้
  • Build-in comment ด้วย # ได้เลย
  • มี Syntax ที่ผ่านเข้าใจง่าย โดยจะใช้ indentation เป็นหลัก เหมือนกับภาษา Python เลย โดยจะใช้ space แทน tab ไป เพื่อไม่ให้เกิดความสับสนต่อการใช้งาน
  • Auto data type หรือเราจะกำหนดเองก็ได้ สำหรับชนิดของข้อมูล

ยกตัวอย่างเช่น

[gist id="f824d7c6ae58065b3802506a4d9819eb" file="1.yaml"]

รูปแบบ หรือ symtax ของ YAML

  • เป็นข้อมูล key-value ซึ่งคั่นด้วย :
  • สำหรับ String data type ไม่ต้อง double quote
  • รูปแบบข้อมูลของ value แบบ string มีหลายรูปแบบ ทั้ง
    • | สำหรับใส่บรรทัดใหม่ของแต่ละข้อมูล
    • > สำหรับการแสดงเป็น paragraph หรือต่อเนื่องกัน
[gist id="f824d7c6ae58065b3802506a4d9819eb" file="2.yaml"]

ต่อมาเก็บข้อมูลในรูปแบบของ sequence

ซึ่งจะมีลักษณะคล้ายกับ array หรือ list
สำหรับเก็บหลาย ๆ ค่าใน key เดียว
ยกตัวอย่างเช่น

[gist id="f824d7c6ae58065b3802506a4d9819eb" file="3.yaml"]

รูปแบบ dictionary ก็มี

[gist id="f824d7c6ae58065b3802506a4d9819eb" file="4.yaml"]

แน่นอนว่ายังมีรูปแบบอื่น ๆ ให้ศึกษาและใช้งานอีก
แต่นี่คือความรู้เบื้องต้นที่ควรต้องรู้จักไว้บ้าง
ยกตัวอย่างที่อาจจะเจอคือ Manifest file ของ Kubernetes เป็นต้น

[gist id="f824d7c6ae58065b3802506a4d9819eb" file="5.yaml"]

Keep learning ครับ


Viewing all articles
Browse latest Browse all 1997

Trending Articles