【问题标题】:error: failed to read input object (not a Template?): error converting YAML to JSON: yaml: mapping values are not allowed in this context错误:未能读取输入对象(不是模板?):将 YAML 转换为 JSON 时出错:yaml:在此上下文中不允许映射值
【发布时间】:2020-12-01 06:18:18
【问题描述】:

这个错误是什么意思?是因为缩进吗?有没有办法自动对齐yaml文件

我尝试通过对齐等来修复它,但它不起作用,我的 jenkins 构建失败了。

- name: SPLUNK_LOG_TOKEN
   valueFrom:
    secretKeyRef:
        name: splunk-secret
        key: splunk.token
- name: SPLUNK_LOG_URL             //error in this line
   valueFrom:
    configMapKeyRef:
       name: splunk-config
       key: splunk.url

【问题讨论】:

    标签: java json yaml


    【解决方案1】:

    以下是无效的 YAML(在这两项中):

    - name: SPLUNK_LOG_TOKEN
       valueFrom:
    

    这是因为valueFromname 缩进更多。因此 YAML 认为 valueFrom 是标量 SPLUNK_LOG_TOKEN 的延续。但是,: 后面跟着一个隐式映射键。并且在多行标量上下文中禁止使用隐式映射键,因此会出错。

    有没有办法自动对齐yaml文件

    YAML 中的缩进是语义的一部分(就像在 Python 中一样)。您基本上是在问您是否可以猜测严重缩进文件的预期语义。虽然这在理论上并非不可能(我的意思是,您可以在 StackOverflow 上针对 YAML 语法问题训练一个神经网络;我已经无数次看到这个特殊问题),但我认为不存在一个现成可用的解决方案.

    您的问题的可能解决方案是

    - name: SPLUNK_LOG_TOKEN
     valueFrom:
    

    但是,我不能 100% 确定;也许您更愿意做类似的事情

    - name:
        id: SPLUNK_LOG_TOKEN
        valueFrom:
    

    如果valueFrom 应该是name 的子级。

    【讨论】:

      【解决方案2】:

      突出显示的是无效的 yaml 模式。 - name: SPLUNK_LOG_TOKEN- name: SPLUNK_LOG_URL.

      应该是这样的

      - name: 
         name: SPLUNK_LOG_TOKEN
         valueFrom:
          secretKeyRef:
              name: splunk-secret
              key: splunk.token
      - name:             
         name: SPLUNK_LOG_URL 
         valueFrom:
          configMapKeyRef:
             name: splunk-config
             key: splunk.url
      

      如果你和我一样是JSON爱好者,那么你可以试试这个在线转换器https://www.json2yaml.com/convert-yaml-to-json

      当我刚接触 yaml 时,我曾经编写较小的 JSON 数据块,并使用在线 https://www.json2yaml.com/convert-yaml-to-json 将其转换为 YAML 格式。 网上也有其他可用的工具,但从个人经验来看,我更喜欢这个。

      【讨论】:

        猜你喜欢
        • 2021-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-12
        • 2020-04-21
        • 2021-06-04
        • 2016-07-13
        • 2016-12-19
        相关资源
        最近更新 更多