【问题标题】:JMESPath filter with >1 match ANDING具有 >1 匹配 ANDING 的 JMESPath 过滤器
【发布时间】:2021-07-23 08:02:04
【问题描述】:

我看到了ORING post;这应该包括ANDING;我在这个问题上苦苦挣扎。

鉴于此 while 循环:

while read -r resourceID resourceName; do
    pMsg "Processing: $resourceID with $resourceName"
    aws emr describe-cluster --cluster-id="$resourceID" --output table > ${resourceName}.md"
done <<< "$(aws emr list-clusters --active --query='Clusters[].Id' \
--output text | sortExpression)"

我需要为我的循环提供集群的 ID 和名称。一是容易;二是躲着我。任何帮助表示赞赏。

【问题讨论】:

    标签: json bash amazon-web-services amazon-emr jmespath


    【解决方案1】:

    如果您的目标是从list-clusters 得到类似这样的输出:

    1  ABCD 
    2  EFGH
    

    为了将其提供给describe-cluster,您应该创建一个multiselect list

    类似:

    Clusters[].[Id, Name]
    

    这实际上在用户指南中关于text output format 进行了描述,他们在其中表明:

    'Reservations[*].Instances[*].[Placement.AvailabilityZone, State.Name,
    InstanceId]' --output text 
    

    给予

    us-west-2a      running i-4b41a37c 
    us-west-2a      stopped i-a071c394 
    us-west-2b      stopped i-97a217a0 
    us-west-2a      running i-3045b007 
    us-west-2a      running i-6fc67758
    

    来源:https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html#text-output


    所以你最终应该得到

    while read -r resourceID resourceName; do
        pMsg "Processing: $resourceID with $resourceName"
        aws emr describe-cluster \
          --cluster-id="$resourceID" \
          --output table > ${resourceName}.md"
    done <<< "$(aws emr list-clusters \
      --active \ 
      --query='Clusters[].[Id, Name]' \
      --output text | sortExpression \
    )"
    

    【讨论】:

    • 完美;我太难了
    猜你喜欢
    • 2016-10-23
    • 1970-01-01
    • 2020-01-27
    • 2018-03-06
    • 1970-01-01
    • 2019-08-01
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多