如何从这个复杂的 Puppet 结构中提取值

How to extract values from this complex Puppet Struct

我在 puppet 中有这个数据结构:

Struct[
    'ssh_keys' => Hash[
      String,
      Struct[
        'path'    => String,
        'content' => String,
      ]
    ]
  ] $myStructure

我想将所有 'path' 值提取到数组中。

我已经使用

映射了内部结构
$testvariable = $myStructure['ssh_keys'].map |$items| { $items[1] }

但这里有点糟糕,任何帮助将不胜感激。

不清楚您挂断了什么,因为您确实已经完成了大部分应该可行的解决方案。然而,对于哈希,我通常更喜欢 map() 函数的形式,其中 lambda 有两个参数,一个单独的键和值。在这种情况下会读得更清楚:

$testvariable = $myStructure['ssh_keys'].map |$unused, $ssh_key| { $ssh_key['path'] }

但是您也应该能够在您的原始代码中将 $items[1] 索引为散列 (Struct) 它是:$items[1]['path'].

如果你不能忍受上面数组和散列索引的混合,你也可以使用dig()函数:$items.dig(1, 'path').