awscli 描述实例,存在多个预留时无法对查询进行排序

1 amazon-ec2 amazon-web-services aws-cli

我试图按启动时间对实例 ID 列表进行排序(因此较旧的实例位于顶部),但由于“describe-instances”的输出在多个“Reservations”中分隔的方式,我似乎遇到了问题。

当指定单个保留时,以下内容似乎有效:

$ aws ec2 describe-instances --instance-id file://instancelist.json --query "Reservations[0] | sort_by(Instances, &LaunchTime)[].InstanceId"
[
    "i-0ea6fe5asda50d5ea"
]

$ aws ec2 describe-instances --instance-id file://instancelist.json --query "Reservations[1] | sort_by(Instances, &LaunchTime)[].InstanceId"
[
    "i-027c72g748aae21e2", 
    "i-086b329e39ee20b86", 
    "i-0035dd291e67e141c"
]
Run Code Online (Sandbox Code Playgroud)

但如果我尝试对多个预订执行相同的操作,我会看到:

$ aws ec2 describe-instances --instance-id file://instancelist.json --query "Reservations[*] | sort_by(Instances, &LaunchTime)[].InstanceId"

In function sort_by(), invalid type for value: None, expected one of: ['array'], received: "null"

$ aws ec2 describe-instances --instance-id file://instancelist.json --query "Reservations[0:1] | sort_by(Instances, &LaunchTime)[].InstanceId"

In function sort_by(), invalid type for value: None, expected one of: ['array'], received: "null"
Run Code Online (Sandbox Code Playgroud)

有什么想法我可能做错了什么吗?

jar*_*mod 6

尝试以下的一些变体,它检索所有预留的所有实例,然后展平中间结果,然后按LaunchTime(别名为time)排序:

aws ec2 describe-instances \
    --query "Reservations[*].Instances[*][].{id:InstanceId,time:LaunchTime} \
    | sort_by([], &time)"
Run Code Online (Sandbox Code Playgroud)

输出将如下所示:

[
    {
        "id": "i-0d9876e0df933a123",
        "time": "2019-07-09T11:52:11.000Z"
    },
    {
        "id": "i-0d1234d5c35fff987",
        "time": "2019-07-10T13:50:14.000Z"
    }
]
Run Code Online (Sandbox Code Playgroud)