aws rds describe-db-snapshots --db-instance-identifier {my_db_instance}
を呼び出して、すべての自動スナップショットを並べ替えて、最近作成されたスナップショットを見つけることができますが、誰かがもっと良いアイデアを持っていることを望んでいました。
私にとって、これは機能します:
aws rds describe-db-snapshots \
--query="reverse(sort_by(DBSnapshots, &SnapshotCreateTime))[0]"
クエリパラメータはそれらを自動的にソートし、最新のもののみを返します。
Arnだけが必要な場合は、これが役立つ可能性があります。
aws rds describe-db-snapshots \
--query="reverse(sort_by(DBSnapshots, &SnapshotCreateTime))[0]|DBSnapshotArn" \
--output text
そして、特定のデータベースインスタンスのすべて:
aws rds describe-db-snapshots \
--db-instance-identifier={instance identifier} \
--query="reverse(sort_by(DBSnapshots, &SnapshotCreateTime))[0]|DBSnapshotArn" \
--output text
私はこれが古いことを知っていますが、私は同じ情報を知る必要があり、スナップショット名を与えるだけの次のものを構築することができました。最新のスナップショットを強調して見つけることについての質問に完全に答えるわけではありませんが、この例では、より良い方向性が得られる可能性があります。
aws rds describe-db-snapshots --db-instance-identifier prd --snapshot-type automated --query "DBSnapshots[?SnapshotCreateTime>='2017-06-05'].DBSnapshotIdentifier"
オプションでそれを分解するには
--db-instance-identifier
(探しているインスタンス名を入力してください)
--snapshot-type
(自動バックアップを見つけるために自動化されました)
--query "DBSnapshots[?SnapshotCreateTime>='2017-06-05'].DBSnapshotIdentifier"
(これは、毎日のバックアップを行うときに検索を絞り込むために使用したものです。スナップショットの作成時間が今日よりも長くなるように探し、.DBSnapshotIdentifierを指定することで名前だけが返されます。
うまくいけば、これは他の誰かを助けるでしょう。
私のやり方:
> aws rds describe-db-snapshots --db-instance-identifier ${yourDbIdentifier} --query="reverse(sort_by(DBSnapshots, &SnapshotCreateTime))[0]|DBSnapshotIdentifier"
> "rds:dbName-2018-06-20-00-07"
2014年10月31日の時点で、--t
フラグを使用して自動バックアップのみを一覧表示できるようです。
そこから、出力を解析して最新のスナップショットを判別できるはずです。
rds-describe-db-snapshots --t automated
DBSNAPSHOT rds:<NAME>-2016-08-09-17-12
これを回避する他の簡単な方法はありません。
上記のメソッドからのコマンドで取得したIDを使用して、スナップショットからデータベースを復元しているときに、このエラーが発生します。
An error occurred (InvalidParameterValue) when calling the RestoreDBInstanceFromDBSnapshot operation: Invalid snapshot identifier: "rds:dev-mysql-rds1-2018-10-06-01-09"
だから、私はそれが私のために働くように上記のクエリを変更しました、これは私のために働いたクエリであり、restore-db-instance-from-db-snapshot
で働いた最新のスナップショットを取得しました
aws rds describe-db-snapshots --query "DBSnapshots[?DBInstanceIdentifier=='MASTER_INSTANCE_IDENTIFIER']" | jq -r 'max_by(.SnapshotCreateTime).DBSnapshotIdentifier'
誰かがcluster
コマンドを探している場合:
aws rds describe-db-cluster-snapshots --db-cluster-identifier prod --snapshot-type automated --query "DBClusterSnapshots[?SnapshotCreateTime>='2017-06-05'].DBClusterSnapshotIdentifier"