动态提取 YAML 值

Extract from YAML values dynamically

考虑以下 yaml 文件:

topics:
  topicA:    
      bins:
        type: multi-bins
        map:
          FirstBin:
            source: value-field
            field-name: ServiceID
          SecondBin:
            source: value-field
            field-name: ServiceID            
    message-transformer:
      class: com.aerospike.connect.inbound.transforms.TombstoneMessageTransformer
      params:
        shouldDeleteOnNull: "FirstBin, SecondBin"
  topicB:
    ...

如您所见,topics.<topic-name>.bins.map.keystopics.<topic-name>.message-transformer.params.shouldDeletedOnNull

之间存在重复

有没有办法动态提取值?我想发送给 shouldDeleteOnNull topics.<topic-name>.bins.map

的所有密钥

注意:我不想为此创建环境变量并使用 Yaml 锚点。

YAML 不是一种编程语言。它不会让你 extract 任何东西,也不会让你 send 任何东西,因为它不会为你提供任何类型的操作或处理指令。

虽然您可以使用锚点多次引用节点,但这对您没有帮助,因为您需要连接值,这在 YAML 中是不可能的。可行的解决方案如下所示(为清楚起见缩短):

map:
  &a FirstBin:
     source: value-field
     field-name: ServiceID
  &b SecondBin:
     source: value-field
     field-name: ServiceID
shouldDeleteOnNull: [*a, *b]

如您所见,我需要使 shouldDeleteOnNull 成为一个序列而不是一个标量才能完成这项工作。这似乎没有太大的改进。

任何更复杂的东西都需要在加载文件的代码中实现,因此在纯 YAML 上下文中讨论没有意义。