Как я могу получить имя самого последнего снимка для экземпляра RDS DB с помощью AWS CLI?

amazon-web-services #amazon-rds #aws-cli

#amazon-web-services #amazon-rds #aws-cli

Вопрос:

Как я могу получить самый последний моментальный снимок для конкретного экземпляра базы данных с помощью AWS CLI?

Я могу легко получить их через графический интерфейс, но я хотел бы автоматизировать это.

Ответ №1:

Вы можете использовать команду aws rds describe-db-snapshots CLI для получения списка снимков БД, а затем запустить локальный запрос, используя --query для получения последнего снимка БД с помощью SnapshotCreateTime поля.

SnapshotCreateTime -> (временная метка)

Указывает, когда был сделан снимок по всемирному координированному времени (UTC). Изменения для копии при копировании моментального снимка.

Что-то вроде этого:

 aws rds describe-db-snapshots 
    --db-instance-identifier your-id 
    --query "sort_by(DBSnapshots, amp;SnapshotCreateTime)[-1].{id:DBSnapshotIdentifier,time:SnapshotCreateTime}"
 

Обратите внимание, что этот запрос сортирует снимки по возрастанию SnapshotCreateTime, а затем просто выбирает последний в списке (как указано в [-1] ), который будет последним, который был создан последним.

[Добавлено] если вы ищете снимки кластеров Aurora DB, вам придется использовать describe-db-cluster-snapshots вместо describe-db-snapshots , но в остальном процесс аналогичен: используйте DBClusterSnapshots and DBClusterSnapshotIdentifier (вместо DBSnapshots and DBSnapshotIdentifier ).

Комментарии:

1. i.stack.imgur.com/lTG1Q.jpg это то, что я вижу в Amazon, но когда я это делаю aws rds describe-db-snapshots { "DBSnapshots": [] } , я возвращаюсь. Разве я не должен возвращать все снимки, которые у меня есть?

2. Вы используете awscli для правильного региона? Я ожидаю увидеть все автоматические (системные) и ручные снимки.

3. @jarmond — Оказывается, мне нужно было сделать describe-db-cluster-snapshots вместо describe-db-snapshots .