Định Dạng YAML

Định dạng và xác thực tệp YAML tức thì — hỗ trợ cấu trúc lồng phức tạp, anchor và alias

Chia sẻ:

Định Dạng YAML

Tại sao nên định dạng tệp YAML?

YAML cực kỳ nhạy cảm với các vấn đề thụt lề — một khoảng trắng thừa có thể gây lỗi phân tích hoặc hỏng dữ liệu thầm lặng. Kubernetes, Docker Compose, GitHub Actions và Ansible dùng YAML cho tệp cấu hình, và một lỗi định dạng có thể chặn toàn bộ triển khai.

📐

Chuẩn hóa thụt lề

Chuẩn hóa thụt lề hỗn hợp thành định dạng 2 khoảng trắng nhất quán trong toàn bộ tài liệu

Xác thực cú pháp

Xác định lỗi thụt lề, lẫn lộn tab/khoảng trắng và vấn đề cấu trúc

Anchor và Alias

Hỗ trợ đầy đủ anchor YAML (&) và alias (*) để tái sử dụng tài liệu

Định dạng YAML trong 3 bước

1

Dán YAML

Dán manifest Kubernetes, workflow GitHub Actions hoặc tệp cấu hình YAML

2

Định dạng và xác thực

Công cụ xác thực cú pháp và tự động định dạng lại với thụt lề nhất quán

3

Sao chép và triển khai

Sao chép YAML đã định dạng vào tệp, pipeline CI hoặc công cụ triển khai

Các trường hợp sử dụng định dạng YAML

☸️

Manifest Kubernetes

Định dạng tệp Deployment, Service và ConfigMap YAML trước khi áp dụng vào cluster

🔄

Pipeline CI/CD

Xác thực workflow GitHub Actions, GitLab CI và CircleCI để ngăn ngừa lỗi pipeline

📋

Playbook Ansible

Định dạng và xác thực task, biến và inventory Ansible

🐳

Docker Compose

Kiểm tra docker-compose.yml được định dạng đúng trước khi docker compose up

Các thực hành tốt nhất cho YAML

✓ Dùng khoảng trắng, không dùng tab

Đặc tả YAML cấm ký tự tab để thụt lề. Cấu hình trình soạn thảo chèn khoảng trắng khi nhấn Tab trong tệp YAML.

✓ Dùng dấu ngoặc kép cho ký tự đặc biệt

Chuỗi chứa : # [ ] { } hoặc bắt đầu bằng ký tự đặc biệt phải đặt trong dấu ngoặc kép.

✓ Dùng anchor để giảm lặp lại

Anchor YAML (&tên) và alias (*tên) cho phép tái sử dụng giá trị trong tài liệu.

✓ Lint trước khi commit

Chạy yamllint hoặc dùng công cụ định dạng này trong hook pre-commit để phát hiện sớm vấn đề định dạng.

❓ Câu hỏi thường gặp

Tại sao YAML không hoạt động với tab thay vì khoảng trắng?

Đặc tả YAML cấm ký tự tab để thụt lề vì các trình soạn thảo khác nhau hiển thị tab với độ rộng khác nhau. Khoảng trắng cung cấp thụt lề nhất quán mà tất cả bộ phân tích YAML hiểu giống nhau.

Anchor YAML (&) và alias (*) làm gì?

Anchor xác định khối có thể tái sử dụng với &tênanchor; alias tham chiếu nó với *tênanchor. Cho phép định nghĩa một giá trị một lần và dùng nhiều nơi.

Sự khác biệt giữa YAML và JSON là gì?

YAML là superset của JSON — JSON hợp lệ cũng là YAML hợp lệ. YAML thêm hỗ trợ chú thích, anchor, chuỗi nhiều dòng và cú pháp dễ đọc hơn.

Khi nào nên chọn YAML thay vì TOML cho cấu hình?

YAML có hỗ trợ công cụ rộng hơn (Kubernetes, Ansible, hầu hết hệ thống CI) và có thể diễn đạt cấu trúc lồng phức tạp một cách súc tích. Trong cấu hình DevOps, YAML là tiêu chuẩn.