动态提取 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.keys
和 topics.<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 上下文中讨论没有意义。
考虑以下 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.keys
和 topics.<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 上下文中讨论没有意义。