什么是 YAML?
YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化语言,常用于配置文件和数据交换。它使用缩进来表示结构,使其比 JSON 或 XML 更易于阅读复杂的嵌套数据。
快速了解
| 全称 | YAML Ain't Markup Language |
|---|---|
| 创建时间 | 2001 年由 Clark Evans、Ingy döt Net、Oren Ben-Kiki 创建 |
| 规范文档 | 官方规范 |
YAML 工作原理
YAML 使用空白缩进来表示结构,无需括号或标签。它支持多种数据类型,包括字符串、数字、布尔值、null、数组(序列)和对象(映射)。YAML 允许注释(以 # 开头)、多行字符串以及用于重用内容的锚点和别名。它是 JSON 的超集,这意味着有效的 JSON 也是有效的 YAML。YAML 广泛用于 DevOps 工具,如 Docker Compose、Kubernetes、Ansible 和 CI/CD 管道。
主要特点
- 使用缩进表示结构(只能用空格,不能用制表符)
- 支持 # 符号注释
- 使用 | 和 > 操作符支持多行字符串
- 锚点(&)和别名(*)用于内容重用
- 是 JSON 的超集 - 所有 JSON 都是有效的 YAML
- 用 --- 分隔的多文档支持
常见用途
- 配置文件(Docker Compose、Kubernetes)
- CI/CD 管道定义(GitHub Actions、GitLab CI)
- 基础设施即代码(Ansible、CloudFormation)
- API 规范(OpenAPI/Swagger)
- 静态网站生成器(Jekyll、Hugo)
示例
# 服务器配置
server:
host: localhost
port: 8080
ssl: true
database:
type: postgresql
credentials:
username: admin
password: secret
features:
- authentication
- logging
- caching