返回

YAML 简易入门指南:全方位了解 YAML 语法与用法

开发工具

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"
  • 数字: 数字可以是整数或浮点数,例如:1233.14
  • 布尔值: 布尔值可以是 truefalse
  • 空值: 空值使用 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 格式的文件。