微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JMESPath提取值匹配的键

如何解决JMESPath提取值匹配的键

给出类似以下的来源

{
  "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”。)

解决方法

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

如果只想获取阶段[AWSCURRENT]中一个秘密的版本号,我建议您使用describe secret而不是list secret。 我需要指出的一件事是,以versoin数字作为键的SecretVersionsToStages与包含“ AWSCURRENT”的数组作为键。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。