跳转至

YAML 格式注意

Cloud Insight 关于平台服务的配置文件都是使用的 YAML 格式,所有很有必要在这介绍一下这种语言格式,每当报错信息中含有一下内容:

mapping values are not allowed in this context in "<byte string>", line 5, column 11

那就是说第5行第11个字符格式不对,那本文就来介绍一下配置文档时需要注意的格式,结构通过缩进来表示,连续的项目通过短横杠 “-” 来表示,key/value 格式对冒号 “:” 来分隔。


规则一:缩进

YAML 使用一个固定的缩进风格表示数据层结构关系,需要每个缩进级别由两个空格组成,注意不要使用 tabs 键。例如 mysql.yaml 中 optionsreplication 这是2个层级,用2个空格来表示,如果同一层级,那就竖直对齐就好啦:

init_config:

instances:
  - server: localhost
    user: CiAgent
    pass: YourPassword
    tags:
      - tag_key1:tag_value1
      - tag_key2:tag_value2
    options:
      replication: 0
      galera_cluster: 1

规则二:短横杠

想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一列表的一部分:

- list_value_one
- list_value_two
- list_value_three

列表可以可以作为一个键值对的 value,这个在 tags 里面很多:

db_user:
  - wang
  - zhang
  - li

规则三:冒号

字典的 keys 在 YAML 中的表现形式是一个以冒号结尾的字符串,values 的表现形式是冒号后面的同一行,用一个空格隔开:

my_key: my_value

另一种选择,一个 value 可以通过缩进与 key 联接,注意也是缩紧2个空格,当然通常情况下,一个 key 的 value 不是单一的,而是一个列表的values。

my_key:
  my_value1
  my_value2

其中字典也可以嵌套:

first_key:
  second_key: value_in_second

5分钟,开启你的跨云监控之旅 (`⌄´ )