Как получить последний снимок тома в AWS с помощью API - PullRequest
2 голосов
/ 07 марта 2019

Мне нужен только последний снимок для определенного тома.

response_v=boto3.client("ec2").describe_snapshots(Filters=[{"Name":"volume-id","Values":["vol-fffffffffff"]}])

Как это сделать?

1 Ответ

1 голос
/ 07 марта 2019

Похоже, что метод describe_snapshots сначала возвращает самый новый, но вы действительно не должны на это рассчитывать.

Я думаю, вы можете смело полагаться на поле StartTime, ища наибольшее значениедля всех снимков возвращается.

Снимки происходят асинхронно;моментальный снимок на момент времени создается немедленно

Из-за этого "самый большой" StartTime будет последним снимком

Я написал этот фрагмент кода для печати snapshot_id сВремя начала последнего снимка.Мой питон-фу не самый лучший, но это работает.

import boto3
import datetime
import pytz

utc = pytz.UTC
starttime=datetime.datetime(1,1,1,tzinfo=utc)
snap_id = ""
volume_id = "<put your volume id here or write something more elegant to pass it in>"

region = 'us-east-1'
session = boto3.Session(profile_name='default')

ec2 = session.client('ec2', region_name=region)

response = ec2.describe_snapshots(Filters=[{"Name":"volume-id","Values":[volume_id]}])

# print(response['Snapshots'])
for snap in response['Snapshots']:
    if snap['StartTime'] > starttime:
        snap_id = snap['SnapshotId']
        starttime= snap['StartTime']

print(snap_id)

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...