【问题标题】:awscli describe-instances, unable to sort query when there are multiple reservationsaws cli describe-instances,当有多个预订时无法对查询进行排序
【发布时间】:2020-01-16 19:26:26
【问题描述】:

我正在尝试按启动时间对实例 ID 列表进行排序(因此较旧的实例位于顶部),但我似乎遇到了问题,因为“describe-instances”的输出被分隔为多个 '预订”。

指定单个预订时,以下似乎有效:

$ 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"
]

但如果我尝试对多个预订做同样的事情,我会看到:

$ 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"

任何想法我可能做错了什么?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-cli


    【解决方案1】:

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

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

    输出将如下所示:

    [
        {
            "id": "i-0d9876e0df933a123",
            "time": "2019-07-09T11:52:11.000Z"
        },
        {
            "id": "i-0d1234d5c35fff987",
            "time": "2019-07-10T13:50:14.000Z"
        }
    ]
    

    【讨论】:

    • 谢谢!这有帮助。这似乎对我有用 '$ aws ec2 describe-instances --instance-id file://instancelist.json --query "Reservations[].Instances[][] | sort_by([] , &LaunchTime)[].InstanceId" '
    【解决方案2】:
    #Try below ones:
    aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,InstanceId,InstanceType,LaunchTime,Tags[?Key==`Name`]| [0].Value] | sort_by(@, &[3]) ' --output table
    aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,InstanceId,InstanceType,LaunchTime,Tags[?Key==`Name`]| [0].Value] | sort_by(@, &[3]) ' --output json
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 2020-10-27
      相关资源
      最近更新 更多