错误:无法读取输入对象不是模板?:将YAML转换为JSON时发生错误:yaml:在此上下文中不允许映射值

问题描述

错误是什么意思?是由于缩进造成的吗?有什么方法可以自动对齐yaml文件

我尝试通过对齐等方式修复它,但是它没有用,并且我的詹金斯构建失败了。

.container {
  position: relative;
  text-align: center;
  color: white;
  display: flex;
}

.l3 {
  width: 100%
}

.l1 {
  position: absolute;
  top: 100px;
  left: 2;
}

.l2 {
  position: absolute;
  top: 100px;
  right: 8px;
}

.centered {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

解决方法

以下是无效的YAML(在两个项目中均无效):

- name: SPLUNK_LOG_TOKEN
   valueFrom:

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

有什么方法可以自动对齐yaml文件

YAML中的缩进是语义的一部分(就像Python中一样)。您基本上是在问是否可以猜测严重缩进的文件的预期语义。尽管从理论上讲这不是不可能的(我的意思是,您可以在StackOverflow上针对YAML语法问题训练神经网络;我已经无数次看到此特定问题了),但我认为不存在一种随时可用的解决方案

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

- name: SPLUNK_LOG_TOKEN
 valueFrom:

但是,我不能百分百确定。也许您宁愿做类似的事情

- name:
    id: SPLUNK_LOG_TOKEN
    valueFrom:

如果valueFrom应该是name的子代。

,

突出显示的是无效的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格式。 网上也有其他工具可用,但是从个人经验来看,我更喜欢这样做。