返回
YAML 简易入门指南:全方位了解 YAML 语法与用法
开发工具
2023-10-31 19:59:34
YAML 简介
YAML(YAML Ain't a Markup Language)是一种简单的人类可读数据格式,于 2001 年由 Clark Evans 提出,并被广泛应用于 Kubernetes 集群配置、Ansible 脚本编排、Docker Compose 服务编排等领域。YAML 的设计目标是易于人类阅读和编写,同时也能被计算机轻松解析。
YAML 基本语法
YAML 的基本语法非常简单,主要由以下几个部分组成:
- 缩进: YAML 中使用缩进(空格或制表符)来表示层级关系,缩进越深表示层级越深。例如:
name: app
replicas: 3
- 键值对: YAML 中使用冒号(:)将键与值分隔,键值对以换行符结束。例如:
name: app
replicas: 3
- 列表: YAML 中使用连字符(-)表示列表元素,列表元素以换行符结束。例如:
- app
- web
- db
- 字典: YAML 中使用花括号({})表示字典,字典元素由键值对组成,键值对以逗号分隔,字典以换行符结束。例如:
{
name: app,
replicas: 3,
labels: {
app: web
}
}
YAML 数据类型
YAML 支持多种数据类型,包括:
- 字符串: 字符串使用双引号(")或单引号(')括起来,例如:
"hello world"
。 - 数字: 数字可以是整数或浮点数,例如:
123
、3.14
。 - 布尔值: 布尔值可以是
true
或false
。 - 空值: 空值使用
null
表示。 - 列表: 列表使用连字符(-)表示列表元素,列表元素以换行符结束。例如:
- app
- web
- db
- 字典: 字典使用花括号({})表示字典,字典元素由键值对组成,键值对以逗号分隔,字典以换行符结束。例如:
{
name: app,
replicas: 3,
labels: {
app: web
}
}
YAML 复杂数据结构
YAML 支持多种复杂数据结构,包括:
- 映射: 映射是一种键值对数据结构,键是唯一的,值可以是任何 YAML 数据类型。例如:
{
"name": "app",
"replicas": 3,
"labels": {
"app": "web"
}
}
- 序列: 序列是一种有序的数据结构,元素可以是任何 YAML 数据类型。例如:
[
"app",
"web",
"db"
]
- 嵌套结构: YAML 支持嵌套数据结构,即数据结构可以包含其他数据结构。例如:
{
"name": "app",
"replicas": 3,
"labels": {
"app": "web",
"env": "prod"
},
"spec": {
"containers": [
{
"name": "web",
"image": "nginx:latest"
},
{
"name": "db",
"image": "mysql:latest"
}
]
}
}
YAML 注释
YAML 支持注释,注释以井号(#)开头,直到行尾。例如:
# 这是注释
name: app
replicas: 3
结语
YAML 是一种简单易用的人类可读数据格式,被广泛应用于 Kubernetes 集群配置、Ansible 脚本编排、Docker Compose 服务编排等领域。通过深入了解 YAML 语法,您将能够轻松编写和理解 Kubernetes 配置文件、Ansible 剧本和其他 YAML 格式的文件。