如何找到名称就像一个值的最新 RDS 快照

How to find the latest RDS snapshot where name is like a value

我有一个使用以日期时间戳结束的标准命名约定定期创建快照的过程。例如“update-script-prod-08052021-075622”。在一个单独的过程中,我需要使用“update-script-prod”之类的名称来识别最新的 RDS 快照。我一直在试验“aws rds describe-db-snapshots”,但它似乎没有通配符搜索功能。有人可以指导我使用一系列命令获取最新的快照名称吗?

您可以使用以下方式获取最新快照:

aws rds describe-db-snapshots --query="reverse(sort_by(DBSnapshots, &SnapshotCreateTime))[0]"

您应该能够将其与允许您过滤结果的过滤器参数结合使用。

--filters Name=db-instance-id ,Values=*update-script-prod*

我相信您想利用 AWS CLI 命令提供的 JMES 查询系统。在这种情况下,下面的示例查询会将结果限制为包含文本 'update-script-prod-' 的 DBSnapshotIdentifiers,然后按创建日期对这些结果进行反向排序,returns 第一个。

aws rds describe-db-snapshots --output json --query="reverse(sort_by(DBSnapshots[?contains(DBSnapshotIdentifier,'update-script-prod-')], &SnapshotCreateTime))[0]