以下是一些如何使用内置--query 选项的示例。每个示例都建立在前一个示例的基础上。
获取所有快照,按开始时间升序排序:
aws ec2 describe-snapshots \
--owner-ids xxxxxxxxxxxx \
--query 'sort_by(Snapshots, &StartTime)'
获取最旧的快照:
aws ec2 describe-snapshots \
--owner-ids xxxxxxxxxxxx \
--query 'sort_by(Snapshots, &StartTime)[0]'
获取最新快照:
aws ec2 describe-snapshots \
--owner-ids xxxxxxxxxxxx \
--query 'sort_by(Snapshots, &StartTime)[-1]'
# Example of output:
{
"Description": "End of Q3 snapshot",
"Encrypted": false,
"OwnerId": "xxxxxxxxxxxx",
"Progress": "100%",
"SnapshotId": "snap-0f601234abcd12345",
"StartTime": "2019-09-30T23:59:59.999Z",
"State": "completed",
"VolumeId": "vol-0f123dc5b1dd911d3",
"VolumeSize": 8
}
获取最新快照的 ID:
aws ec2 describe-snapshots \
--owner-ids xxxxxxxxxxxx \
--query 'sort_by(Snapshots, &StartTime)[-1].SnapshotId'
# Example of output:
"snap-0f601234abcd12345"
以纯文本形式获取最新快照的 ID:
aws ec2 describe-snapshots \
--owner-ids xxxxxxxxxxxx \
--query 'sort_by(Snapshots, &StartTime)[-1].SnapshotId' \
--output text
# Example of output:
snap-0f601234abcd12345
如果你更喜欢使用jq,你可以获得如下相同的结果(如@peak所示):
aws ec2 describe-snapshots \
--owner-ids xxxxxxxxxxxx \
| jq -r '.Snapshots | sort_by(.StartTime)[-1].SnapshotId'