.yml是什么文件(yml文件怎么读)

.yml是什么文件(yml文件怎么读)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p></p> 

讯享网

YAML (YAML Ain’t Markup Language) 是一种简洁、易读、类似 XML、JSON 的标记性语言。

它强调以数据为中心,而不是以标记语言为重点,广泛用于配置文件和数据交换。

YAML 结构化、可读性强,是 Kubernetes、Ansible 等工具的主要配置语言。


  • 缩进

    YAML 使用缩进来表示层级关系,通常使用两个空格缩进。

    低版本限制,不能使用制表符 。

    缩进的空格数不重要,只要相同层级的元素左对齐即可。

  • 区分大小写: 和 是两个不同的键。
  • 文件扩展名:YAML 文件通常使用 或 扩展名。
  • 注释:使用 表示注释,注释内容不会被解析。
    讯享网

YAML支持以下几种数据类型:

  • 纯量:单个的、不可再分的值(基本数据类型、日期、null、字符串等)
  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hash) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

总的来说包含这几种:字符串、数值、布尔值、空值、日期时间、列表和字典。

2.1 字符串

直接字符串:键值对中的值默认为字符串。

带引号字符串:可以使用单引号或双引号。

  • 双引号允许使用转义字符,单引号则不支持(双引号不会对特殊字符转义)。
  • 如果字符串之中包含空格或特殊字符,需要放在引号之中。
 
     

多行字符串:使用 表示保留换行,使用 表示折叠换行。

讯享网

字符串可以拆成多行,从第二行开始,必须有一个单空格缩进(换行符会被转为空格)。

 
     

单引号之中如果还有单引号,必须连续使用两个单引号转义。

讯享网

2.2 数值

YAML 支持整数和浮点数,可以直接写数值而不需引号。

 
     

2.3 布尔值

布尔值使用 、、、、、 等关键字,均不区分大小写,比如也可以使用。

讯享网

2.4 空值

空值使用 、 或者什么都不添加进行表示。

 
     

2.5 列表 (Array)

列表使用 连词线开头表示元素,每个元素在新行,构成一个数组。

讯享网

也可以在一行内表示列表(行内表示法 ):

 
     

2.6 对象/字典 (Map)

对象又叫字典,表示键值对,值可以是任何数据类型,使用冒号结构表示。

讯享网

还可以使用类似 JSON 的形式声明:

 
     

2.7 日期时间类型

YAML 支持标准的日期和时间格式,通常遵循 ISO 8601 格式。例如,日期可以写成 格式,时间可以写成 或 格式。

日期示例:

讯享网

日期和时间示例(带时区,对应 Java 语言中的 ZonedDateTime):

 
     
  • 表示 UTC 时间。
  • 还可以在时间后面指定时区偏移,例如 。

YAML 会自动识别这种格式并将其解析为日期或时间类型。

如果解析器不支持日期时间解析,可以将日期或时间用引号括起来,明确将其作为字符串处理:

讯享网

在 YAML 中,类型一般是隐式推断的,但我们可以通过强制类型转换来显式指定某个值的类型。


讯享网

YAML 支持的强制类型转换可以确保数据按照指定类型进行处理,主要通过 标签来实现。

YAML 中常用的类型标签包括:

常用标签 作用 强制转换为字符串类型 强制转换为整数类型 强制转换为浮点数类型 强制转换为布尔类型 强制转换为空值类型 强制转换为序列(即列表)类型 强制转换为映射(即字典)类型
 
      

注意事项:

  • 强制类型转换标签会覆盖 YAML 的自动类型推断。
  • 一些 YAML 解析器可能不支持所有类型的强制转换标签(如 和 ),使用时需要确保与所用工具兼容。

通过使用强制类型转换可以明确数据的类型,避免误解或错误解析。


4.1 嵌套结构

YAML 支持嵌套结构,可用于表示多层级的数据关系。

讯享网

4.2 列表包含字典

可以在列表中包含字典,以表示复杂的对象集合。

 
       

4.3 字典包含列表

可以在字典中包含列表,适用于同一个键有多个值的情况。

讯享网

4.4 复用锚点和引用

YAML 提供了锚点 和引用 ,可用于复用相同的值。

 
       

在上例中, 将继承 的值,并覆盖 ,转为 JSON 对应的值如下:

讯享网

YAML 支持字面量和折叠字符串,用于表示多行文本。

  • 字面量字符串 ():保留多行文本中的换行。
     
  • 折叠字符串 ():折叠多行文本,所有行会合并成一个段落。
    讯享网

在 YAML 中,有一些特殊字符需要转义处理。

  • 双引号 ():允许使用转义字符。
  • 反斜杠 ():用于转义,如 表示换行。
     

在实际应用中,我们有时需要在一个文件中包含多个 YAML 文档。可以使用 (三个连字符)作为分隔符,将不同的文档分隔开。

每个文档可以有自己的顶层键结构或内容。

讯享网
  • 每个文档以 开头,表示一个新的 YAML 文档。
  • 您可以在同一个文件中包含多个配置,通常用于配置文件包含多个环境或多种资源定义的场景。

在 Kubernetes、Ansible 等工具中,多个配置常被放在同一文件中,用 分隔来定义不同的资源或任务。


以下是一个完整的 YAML 配置文件示例,涵盖了多种数据类型和结构:

 
           

  • 适当使用注释:为配置项增加注释以提高可读性。
  • 层级结构清晰:合理设计层级结构,避免过深嵌套。
  • 缩进错误:缩进需一致,通常为 2 个空格,老版本不允许使用 。
  • 键重复:同一层级的键不能重复,否则解析器会报错。
  • 保留空格:使用 或 时,应确保空格正确,以避免内容解析错误。
  • 书写空格:书写 yaml 切记 后面要加一个空格。
  • 格式验证:YAML转JSON网址,可用于验证YAML书写是否正确。

  • Kubernetes 配置:用于定义 Pod、Service、Deployment 等资源。
  • Ansible Playbooks:用于定义任务和角色。
  • CI/CD 配置:例如 GitHub Actions 的 配置文件。

编写本篇内容的目的主要是可以在声明配置文件时方便查阅,提高效率。



小讯
上一篇 2025-06-13 10:05
下一篇 2025-05-30 20:10

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/199615.html