AWS CLI - 如何查询在特定日期之后创建的快照

时间:2017-08-02 04:17:28

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

我正在尝试查询在特定日期之后创建的快照,但它没有返回任何结果。我正在尝试的查询如下:

aws ec2 describe-snapshots --query 'Snapshots[?StartTime >= `2017-06-01`].{id:SnapshotId}' --owner-ids nnnnnnnnnnn

如果删除--query部分,则会返回所有快照,因此我知道这与查询有关。

我尝试检查JMESPath docs,但日期操作并不多。我也尝试复制示例here中的语法无效。

谢谢,

2 个答案:

答案 0 :(得分:3)

您的代码示例对我来说非常合适! (使用我的帐户ID。)

在快照上查找日期,然后将该日期放在查询中 - 前一天,然后再运行一天。这应该可以帮助你追踪这种奇怪的行为。

$ aws ec2 describe-snapshots --query 'Snapshots[?StartTime >= `2016-08-30`].{id:SnapshotId}' --owner-ids 123456789012
[
    {
        "id": "snap-e044d613"
    }, 
    {
        "id": "snap-f4444506"
    }
]

$ aws ec2 describe-snapshots --query 'Snapshots[?StartTime >= `2016-08-31`].{id:SnapshotId}' --owner-ids 123456789012
[]

答案 1 :(得分:0)

我是AWS CLI和jquery的忠实拥护者,因此我找到了列出特定时间戳之前创建的所有快照的最简单方法:-

aws ec2 describe-snapshots --owner self --output json | jq '.Snapshots[] | select(.StartTime > "2019-12-18")'