Konfigurasi YAML (.yaml)

YAML 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 spasi putih yang bersih.

Konversi YAML ke JSON

Pengonversi YAML ke JSON gratis di dalam peramban. Konversi berkas secara instan di perangkat Anda.

Periksa & Metadata

Sistem operasi dan penganalisis file mengidentifikasi file YAML dengan memeriksa urutan byte biner utama:

Pilih atau letakkan berkas di sini

100% konversi privat di dalam peramban - berkas tidak pernah meninggalkan perangkat Anda

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

Tanda Tangan Header Tingkat-Byte (Magic Bytes)

Sistem operasi dan penganalisis file mengidentifikasi file YAML dengan memeriksa urutan byte biner utama:

SIGNATURE HEX (OFFSET 0):

2D 2D 2D 0A

REPRESENTASI ASCII: ---\n

Standardisasi: YAML 1.2.2 Specification

Spesifikasi Teknis

Arsitektur WadahIndentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases
KompresiUncompressed text stream
Endianness ByteUTF-8 / Unicode text stream
Ruang WarnaN/A (Data Serialization)
Saluran & StrukturMappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref)
Dimensi MaksUnbounded document size (supports multi-document streams separated by '---')
TransparansiNone
Streaming & ProgresifMulti-document streams allow sequential document-by-document processing

Matriks Perbandingan Teknis: YAML vs Pesaing

Atribut TeknisYAML (Saat Ini)JSONTOMLXML
Gaya SintaksHierarki spasi putih indentasiKurung siku dan tanda kutip ketatTabel dan pasangan key=valueTag pembuka/penutup yang panjang
Dukungan KomentarBawaan (komentar #)Tidak ada komentar yang diizinkanBawaan (komentar #)<!-- komentar -->
Adopsi DevOpsStandar universal (Kubernetes, CI/CD)Standar API universalKonfigurasi paket Rust/PythonKonfigurasi lama perusahaan
Penggunaan Kembali DataJangkar Bawaan (&) & Alias (*)Tidak ada (duplikasi manual)Tidak ada (duplikasi manual)Entitas XML

Mode Kerusakan Umum & 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: Konversikan tab menjadi spasi dan validasikan sintaks menggunakan Pemformat YAML File2File.

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:

Asal-Usul & Tonggak Sejarah

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

Keunggulan & Kelebihan Utama

  • Standar yang tak terbantahkan untuk infrastruktur cloud modern: digunakan secara universal dalam manifes Kubernetes, Docker Compose, dan GitHub Actions.
  • Sintaks yang bersih dan mudah dibaca: menghilangkan kerumitan kurung siku, tanda kurung, 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 putih: penggunaan tab yang tidak disengaja atau satu spasi tambahan dapat merusak hierarki dokumen atau menyebabkan kesalahan penguraian (parsing).
  • Bug paksaan tipe (type coercion) 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 (cloud computing), 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.