Konfigurasi YAML (.yaml)
YAML StandarYAML 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:
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 0AREPRESENTASI ASCII: ---\n
Standardisasi: YAML 1.2.2 Specification
Spesifikasi Teknis
| Arsitektur Wadah | Indentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases |
| Kompresi | Uncompressed text stream |
| Endianness Byte | UTF-8 / Unicode text stream |
| Ruang Warna | N/A (Data Serialization) |
| Saluran & Struktur | Mappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref) |
| Dimensi Maks | Unbounded document size (supports multi-document streams separated by '---') |
| Transparansi | None |
| Streaming & Progresif | Multi-document streams allow sequential document-by-document processing |
Matriks Perbandingan Teknis: YAML vs Pesaing
| Atribut Teknis | YAML (Saat Ini) | JSON | TOML | XML |
|---|---|---|---|---|
| Gaya Sintaks | Hierarki spasi putih indentasi | Kurung siku dan tanda kutip ketat | Tabel dan pasangan key=value | Tag pembuka/penutup yang panjang |
| Dukungan Komentar | Bawaan (komentar #) | Tidak ada komentar yang diizinkan | Bawaan (komentar #) | <!-- komentar --> |
| Adopsi DevOps | Standar universal (Kubernetes, CI/CD) | Standar API universal | Konfigurasi paket Rust/Python | Konfigurasi lama perusahaan |
| Penggunaan Kembali Data | Jangkar 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
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.
Pasangan Konversi YAML Terkait
Mengonversi file konfigurasi YAML ke format JSON mengubah struktur teks berindentasi yang mudah dibaca manusia menjadi objek ketat yang dapat diurai oleh mesin untuk aplikasi web.
Mengonversi file konfigurasi JSON ke format YAML mengubah struktur data terprogram yang kaku menjadi dokumen yang bersih dan mudah dibaca manusia sehingga jauh lebih mudah diedit oleh administrator sistem.