【问题标题】:JMESPath to extract key where values matchJMESPath 提取值匹配的键
【发布时间】:2021-01-09 01:11:23
【问题描述】:

给定的来源看起来像:

{
  "Name": "sandbox-config",
  "VersionList": {
    "version-2": [ "STAGING" ],
    "version-1": [ "CURRENT", "NEXT" ],
    "version-0": [ "ANCIENT" ]
  }
}

我正在寻找可以给我的 jmespath 查询:

{
  "Name": "sandbox-config",
  "Version": "version-1"
}

其中version-1 是值数组包含“CURRENT”的第一个键。

所以,像这样的查询,

{ Name:Name, Version:VersionList.*[?@==`CURRENT`] | [] | [0]}

给我:

{
  "Name": "sandbox-config",
  "Version": "CURRENT"
}

这不是我想要的。同样:

{Name:Name, Version:VersionList.keys(@)}

这给了我:

{
  "Name": "sandbox-config",
  "Version": [
    "version-2",
    "version-1",
    "version-0"
  ]
}

有什么建议吗?我觉得我在寻找一个解决方案,但并没有完全到达那里。

(上下文:我正在尝试处理aws secretsmanager list-secrets 的输出,其中SecretVersionsToStages 具有ARN 值作为键,数组包含“AWSCURRENT”。)

【问题讨论】:

    标签: aws-secrets-manager jmespath


    【解决方案1】:

    https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html#API_DescribeSecret_ResponseSyntax

    如果您只想获取具有阶段 [AWSCURRENT] 的一个密钥的版本号,我建议您使用描述密钥而不是列表密钥。 我需要指出的一件事是 SecretVersionsToStages 以 versoin 编号作为键,数组包含“AWSCURRENT”。

    【讨论】:

      猜你喜欢
      • 2022-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 2023-01-30
      • 2019-06-12
      • 2021-07-23
      相关资源
      最近更新 更多