【问题标题】:YAML mapping values are not allowed in this context此上下文中不允许使用 YAML 映射值
【发布时间】:2023-03-16 23:07:01
【问题描述】:

我正在尝试以这种格式配置 YAML 文件:

jobs:
 - name: A
   - schedule: "0 0/5 * 1/1 * ? *"
   - type: mongodb.cluster
    - config:
       - host: mongodb://localhost:27017/admin?replicaSet=rs
       - minSecondaries: 2
       - minOplogHours: 100
       - maxSecondaryDelay: 120
 - name: B
   - schedule: "0 0/5 * 1/1 * ? *"
   - type: mongodb.cluster
    - config:
       - host: mongodb://localhost:27017/admin?replicaSet=rs
       - minSecondaries: 2
       - minOplogHours: 100
       - maxSecondaryDelay: 120

我的想法是我可以读取作业元素内的内容,并拥有一系列可以解析的不同作业配置。

但是,yamllint.com 告诉我这是非法的 YAML,因为 mapping values are not allowed in this context at line 2 其中line 2jobs: 行。

我做错了什么?

【问题讨论】:

    标签: yaml


    【解决方案1】:

    这是有效的 YAML:

    jobs:
     - name: A
       schedule: "0 0/5 * 1/1 * ? *"
       type: mongodb.cluster
       config:
         host: mongodb://localhost:27017/admin?replicaSet=rs
         minSecondaries: 2
         minOplogHours: 100
         maxSecondaryDelay: 120
     - name: B
       schedule: "0 0/5 * 1/1 * ? *"
       type: mongodb.cluster
       config:
         host: mongodb://localhost:27017/admin?replicaSet=rs
         minSecondaries: 2
         minOplogHours: 100
         maxSecondaryDelay: 120
    

    注意,每个 '-' 开始序列中的 元素。此外,地图中键的缩进应该完全相同

    【讨论】:

      【解决方案2】:

      序列的元素需要在同一级别缩进。假设您想要两个作业(A 和 B),每个作业都有一个 有序 键值对列表,您应该使用:

      jobs:
       - - name: A
         - schedule: "0 0/5 * 1/1 * ? *"
         - - type: mongodb.cluster
           - config:
             - host: mongodb://localhost:27017/admin?replicaSet=rs
             - minSecondaries: 2
             - minOplogHours: 100
             - maxSecondaryDelay: 120
       - - name: B
         - schedule: "0 0/5 * 1/1 * ? *"
         - - type: mongodb.cluster
           - config:
             - host: mongodb://localhost:27017/admin?replicaSet=rs
             - minSecondaries: 2
             - minOplogHours: 100
             - maxSecondaryDelay: 120
      

      也可以像@Tsyvarrev 那样将(单条目)映射的序列转换为映射,但会使您失去排序。

      【讨论】:

        猜你喜欢
        • 2019-10-27
        • 2017-11-03
        • 1970-01-01
        • 2021-04-13
        • 2016-07-13
        • 1970-01-01
        • 2016-12-19
        • 1970-01-01
        • 2021-07-23
        相关资源
        最近更新 更多