组合多个 aws cli 调用以获取标签值

combine multiple aws cli calls to get tag values

我有一个脚本可以获取具有 abc 值的标签 x 的实例列表。返回的 ec2 实例数以百计,现在我需要为每个实例获取 2 个标签值。并非所有实例都具有这两个标签,它可能是 1 个或两者都或 none。现在我发出 2 个调用来获取每个标签的值(这是一个 bash shell)

 market=`aws ec2 describe-tags --filters "Name=resource-id,Values=$id" "Name=key,Values=market" --query Tags[].Value --region $aws_region --output text`
service=`aws ec2 describe-tags --filters "Name=resource-id,Values=$id" "Name=key,Values=service" --query Tags[].Value --region $aws_region --output text`

有没有办法在一次调用中获取两个标签的值?

我有 4 个这样的实例:

  • i-020f43a6253e1dd25 tags:market=1
  • i-0a5c4b42fe3e75c15 tags:service=1
  • i-027ca3de0fe11f1d3 标签:市场=4,服务=4
  • i-0e77b17601f9b2fd2 标签:none

服务器端过滤使用 --filters returns 4 条匹配记录

% aws ec2 describe-tags --filters "Name=key,Values=market,service"
{
    "Tags": [
        {
            "Key": "market",
            "ResourceId": "i-020f43a6253e1dd25",
            "ResourceType": "instance",
            "Value": "1"
        },
        {
            "Key": "market",
            "ResourceId": "i-027ca3de0fe11f1d3",
            "ResourceType": "instance",
            "Value": "4"
        },
        {
            "Key": "service",
            "ResourceId": "i-027ca3de0fe11f1d3",
            "ResourceType": "instance",
            "Value": "4"
        },
        {
            "Key": "service",
            "ResourceId": "i-0a5c4b42fe3e75c15",
            "ResourceType": "instance",
            "Value": "1"
        }
    ]
}