Konfigurasi YAML (.yaml)

Spesifikasi Standar

YAML Ain't Markup Language (YAML) adalah format serialisasi data yang dominan untuk DevOps modern, infrastruktur cloud (Kubernetes, Docker Compose), dan otomatisasi CI/CD, yang menekankan keterbacaan manusia melalui indentasi yang rapi.

Konversi YAML ke JSON

Konverter YAML ke JSON gratis yang berjalan di peramban. Konversikan berkas secara instan di perangkat Anda.

Pemeriksaan & Metadata

Sistem operasi dan penganalisis file mengenali file YAML dengan memeriksa urutan byte biner di bagian awal:

Pilih atau letakkan berkas di sini

Privat - file tidak pernah meninggalkan perangkat Anda

atau tempel Ctrl+V
Jaminan Privasi Tanpa Transmisi Jaringan: 0 byte diunggah ke server eksternal. Semua pemrosesan berlangsung secara lokal di sandbox browser Anda.

Tanda Tangan Header per Byte (Byte Penanda)

Sistem operasi dan penganalisis file mengenali file YAML dengan memeriksa urutan byte biner di bagian awal:

TANDA TANGAN HEX (OFFSET 0):

2D 2D 2D 0A

REPRESENTASI ASCII: ---\n

Standardisasi: Spesifikasi YAML 1.2.2

Spesifikasi Teknis

Arsitektur KontainerFormat serialisasi data berbasis indentasi yang mudah dibaca manusia, merupakan superset JSON dan mendukung jangkar serta alias
KompresiAliran teks tanpa kompresi
Urutan ByteAliran teks UTF-8 / Unicode
Ruang WarnaTidak berlaku (serialisasi data)
Saluran & StrukturPemetaan (kamus kunci-nilai), urutan (daftar), tipe skalar (string, angka, boolean), serta jangkar (&ref/*ref)
Dimensi MaksimumUkuran dokumen tanpa batas (mendukung aliran beberapa dokumen yang dipisahkan dengan '---')
TransparansiTidak ada
Streaming & ProgresifAliran beberapa dokumen memungkinkan pemrosesan dokumen satu per satu secara berurutan

Perbandingan Teknis YAML dengan Pesaing

Atribut TeknisYAML (Saat Ini)JSONTOMLXML
Gaya SintaksHierarki berdasarkan indentasiKurung dan tanda kutip wajibTabel dan pasangan key=valueTag pembuka/penutup yang bertele-tele
Dukungan KomentarBawaan (komentar #)Tidak ada komentar yang diizinkanBawaan (komentar #)<!-- komentar -->
Adopsi DevOpsDukungan berbeda-beda antarperangkat lunak.Dukungan berbeda-beda antarperangkat lunak.Konfigurasi paket Rust/PythonKonfigurasi lama perusahaan
Penggunaan Kembali DataJangkar (&) dan alias (*) bawaanTidak ada (duplikasi manual)Tidak ada (duplikasi manual)Entitas XML

Pola Kerusakan Umum dan Panduan Pemulihan Hex

Kesalahan parser: 'mapping values are not allowed here' atau kesalahan indentasi.

Penyebab Utama: Mencampur tab dengan spasi atau tingkat indentasi yang tidak selaras.

Pemulihan: Ubah tab menjadi spasi dan validasi sintaks menggunakan pemformat YAML File2File.app.

Analisis Keamanan & Vektor Serangan Parser

Parser YAML yang mendukung tag tipe kustom (seperti 'yaml.load()' pada PyYAML) secara historis mengizinkan eksekusi kode jarak jauh melalui instansiasi objek arbitrer.

Vektor Serangan yang Diketahui

  • Eksekusi kode arbitrer melalui tag deserialisasi objek yang tidak aman (misalnya '!!python/object/apply').
  • Bom ekspansi entitas (setara dengan billion laughs menggunakan jangkar dan alias YAML).
  • Kerentanan kebingungan tipe karena penguraian boolean dan stempel waktu implisit.

Praktik Terbaik Defensif: Selalu gunakan parser YAML yang aman ('yaml.safe_load()' di Python) dan terapkan batas kedalaman ekspansi jangkar.

Asal-Usul & Tonggak Sejarah

2021Revisi YAML 1.2.2 diterbitkan, menyempurnakan kompatibilitas JSON dan definisi tata bahasa formal.
2009YAML 1.2 menstandarkan YAML sebagai superset ketat dari JSON, yang berarti semua JSON yang valid juga merupakan YAML yang valid.
2001Clark Evans, Ingy döt Net, dan Oren Ben-Kiki membuat YAML sebagai alternatif yang ramah manusia untuk XML.

Keunggulan & Kelebihan Utama

  • YAML banyak digunakan dalam alat infrastruktur, tetapi dukungan dan perilakunya bergantung pada implementasi.
  • Sintaks yang bersih dan mudah dibaca: menghilangkan kerumitan kurung kurawal, kurung siku, dan tanda kutip melalui indentasi yang intuitif.
  • Mendukung referensi dan jangkar (&anchor / *anchor) untuk menggunakan kembali blok konfigurasi yang berulang tanpa duplikasi.

Keterbatasan Teknis & Kekurangan

  • Sensitif terhadap spasi: penggunaan tab yang tidak disengaja atau satu spasi tambahan dapat merusak hierarki dokumen atau menyebabkan kesalahan penguraian (parsing).
  • Bug akibat pemaksaan tipe yang terkenal: kata-kata tanpa tanda kutip seperti 'no', 'on', 'yes', atau kode negara ('NO' untuk Norwegia) dapat secara diam-diam berubah menjadi tipe boolean.
  • Kecepatan penguraian yang jauh lebih lambat dibandingkan dengan format biner atau JSON yang ketat.

Fakta Teknis Menarik

  • YAML awalnya singkatan dari 'Yet Another Markup Language', tetapi kemudian diubah secara jenaka menjadi akronim rekursif 'YAML Ain't Markup Language' untuk menekankan serialisasi data.
  • 'Masalah Norwegia' adalah bug pemrograman terkenal di mana kode negara 'NO' dalam file YAML diuraikan sebagai nilai boolean 'false'.
  • Setiap file JSON yang valid di dunia ini juga secara bersamaan merupakan file YAML yang 100% valid.

Pertanyaan Teknis yang Sering Diajukan

Untuk apa YAML digunakan?

YAML adalah bahasa konfigurasi utama untuk komputasi awan, penerapan klaster Kubernetes, file Docker Compose, alur kerja GitHub Actions, dan pengaturan perangkat lunak.

Bisakah saya menggunakan tab pada file YAML?

Tidak. Spesifikasi resmi YAML dengan tegas melarang penggunaan karakter tab untuk indentasi; Anda harus selalu menggunakan spasi (biasanya 2 spasi per tingkat).

Bagaimana cara mengonversi YAML ke JSON?

Anda dapat mengonversi file YAML menjadi JSON yang bersih dan divalidasi dalam satu klik menggunakan File2File.app langsung di browser web Anda dengan privasi penuh.