Parser YAML

YAML (YAML Ain't Markup Language) adalah format serialisasi data yang mudah dibaca manusia, populer untuk file konfigurasi. Alat ini mengurai YAML dengan dukungan penuh spesifikasi 1.2 termasuk anchor, alias, dan stream multi-dokumen, lalu menampilkan hasilnya dalam tampilan pohon interaktif.

Spesifikasi

Kasus Penggunaan Umum

  • Mengurai dan memvalidasi manifes Kubernetes (Deployment, Service, ConfigMap)
  • Membaca file Docker Compose dan docker-compose.yml
  • Debug workflow GitHub Actions, GitLab CI, atau CircleCI
  • Mengonversi playbook Ansible ke JSON untuk pemrosesan programatis
  • Memvalidasi file values chart Helm

Fitur

  • Dukungan penuh spesifikasi YAML 1.2
  • Menangani anchor (&) dan alias (*) untuk konten yang dapat digunakan kembali
  • Mengurai stream multi-dokumen (pemisah ---)
  • Mengonversi ke JSON, TOML, atau XML
  • Validasi sintaks dengan pesan error spesifik per baris
  • Tampilan pohon interaktif untuk struktur bersarang

Contoh

Kubernetes Deployment

Coba →

Manifes Deployment Kubernetes yang mendefinisikan pod nginx yang direplikasi.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx

Docker Compose

Coba →

File Docker Compose yang mendefinisikan layanan web dan database.

version: '3.8'
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: secret

Tips

  • YAML sensitif terhadap indentasi. Gunakan spasi, bukan tab.
  • String tidak memerlukan tanda kutip kecuali mengandung karakter khusus.
  • Gunakan anchor (&nama) dan alias (*nama) untuk menghindari pengulangan konten.
  • String multi-baris dapat menggunakan skalar blok | (literal) atau > (dilipat).

Pemahaman Parser YAML

YAML (YAML Ain't Markup Language) adalah format serialisasi data yang mudah dibaca manusia dan banyak digunakan dalam DevOps, infrastruktur cloud, dan konfigurasi aplikasi. Sintaksnya yang berbasis indentasi menghilangkan kebisingan visual dari tanda kurung siku dan kurung kurawal, menjadikannya format pilihan untuk alat infrastructure-as-code, pipeline CI/CD, dan orkestrasi container.

Kekuatan utama YAML adalah keterbacaan. Manifes Deployment Kubernetes, workflow GitHub Actions, atau file Docker Compose dalam YAML dapat dipahami dengan sekali pandang. Format ini mendukung skalar (string, angka, boolean, null, tanggal), sequence (array), dan mapping (pasangan kunci-nilai). String biasanya tidak memerlukan tanda kutip, konten multi-baris dapat menggunakan blok literal (|) atau blok lipat (>), dan anchor (&) dengan alias (*) memungkinkan Anda mendefinisikan nilai sekali dan mereferensikannya berkali-kali, mengurangi pengulangan dalam file konfigurasi besar.

YAML 1.2, spesifikasi saat ini, adalah superset ketat dari JSON: setiap dokumen JSON yang valid juga merupakan YAML yang valid. Ini berarti Anda dapat mencampurkan sintaks YAML dan JSON dalam file yang sama. Dukungan multi-dokumen melalui pemisah --- memungkinkan Anda menyematkan beberapa dokumen independen dalam satu file, umum dalam manifes Kubernetes dan template Helm.

Jebakan utama YAML adalah sensitivitasnya terhadap spasi putih. Tab tidak diizinkan untuk indentasi (hanya spasi), dan kunci yang tidak sejajar dapat secara diam-diam mengubah struktur dokumen. "Masalah Norwegia" — di mana nilai tanpa tanda kutip seperti "no", "yes", "on", dan "off" diinterpretasikan sebagai boolean — adalah sumber bug terkenal lainnya. YAML 1.2 mengatasi beberapa masalah ini, tetapi banyak parser masih menggunakan aturan YAML 1.1 secara default.

YAML 1.1 mendefinisikan kumpulan literal boolean yang luas termasuk yes/no, on/off, true/false, dan varian huruf besarnya. Kode negara seperti NO diurai sebagai boolean false, dan string "on" menjadi true — "masalah Norwegia" yang terkenal. YAML 1.2 membatasi boolean hanya pada true dan false, tetapi banyak parser populer (termasuk PyYAML) masih default ke aturan YAML 1.1. Perbaikan yang aman adalah selalu menggunakan tanda kutip untuk string yang bisa disalahartikan. Karakter tab juga dilarang keras untuk indentasi; hanya spasi yang diizinkan, dan tab dalam indentasi akan menyebabkan error parsing. Dua spasi per level adalah konvensi yang paling umum.

YAML menyediakan dua gaya skalar blok untuk string multi-baris. Skalar blok literal (|) mempertahankan jeda baris persis seperti yang ditulis, menjadikannya ideal untuk skrip tertanam atau kueri SQL. Skalar blok lipat (>) menggabungkan baris berurutan dengan spasi, yang cocok untuk deskripsi panjang atau paragraf. Kedua gaya mendukung pengubah: |- dan >- menghapus baris baru di akhir, sementara |+ dan >+ mempertahankan semua baris baru di akhir.

Anchor dan alias adalah mekanisme YAML untuk menggunakan kembali konten. Anchor (&nama) menandai node untuk referensi nanti, dan alias (*nama) menyisipkan node tersebut di tempat lain dalam dokumen. Dikombinasikan dengan kunci merge (<<: *defaults), pola ini memungkinkan Anda mendefinisikan pengaturan bersama sekali dan menggabungkannya ke dalam beberapa mapping. Ini sangat berguna dalam konfigurasi CI/CD di mana banyak job berbagi variabel lingkungan, aturan caching, atau langkah deployment yang sama.

← Kembali ke semua alat