Мне нужно создать моментальный снимок всех томов, присутствующих в регионе в aws. Этот сценарий должен иметь возможность создавать снимки всех томов в регионе us-east-2.
Я использовал приведенный ниже скрипт, но он делает только снимок моего региона по умолчанию. Как решить эту проблему?
import boto3
ec2 = boto3.resource('ec2')
snapshot = ec2.Snapshot('id')
Region='us-east-2'
for vol in ec2.volumes.all():
if Region=='us-east-2':
string=vol.id
ec2.create_snapshot(VolumeId=vol.id,Description=string)
print(vol.id),
print('A snapshot has been created for the following EBS volumes',vol.id)
else:
print('No snapshot has been created for the following EBS volumes',vol.id)
Сценарий отлично работает только для региона по умолчанию, но когда я создаю тома в любом другом регионе, он не удосуживается сделать снимок этих томов. Может кто-нибудь помочь?
Вы можете указать регион при создании клиента ec2 с помощью Config.
Ссылка: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html
Спасибо, я использовал клиент, чтобы указать регион, и я также обновил ответ своим скриптом на случай, если кто-то еще столкнется с тем же самым senario.
Проведя дополнительные исследования, я увидел, что приведенный ниже скрипт отлично работает для меня.
import boto3
ec2 = boto3.client('ec2')
region_name='us-east-2'
ec2 = boto3.resource('ec2',region_name)
count=0
for vol in ec2.volumes.all():
count+=1
string=vol.id
ec2.create_snapshot(VolumeId=vol.id,Description=string)
print('A snapshot has been created for the following EBS volumes',vol.id)
if count==0:
print('No snapshot has been created for the following region, cause volume does not exit!')
Позвольте мне попробовать использовать это, я немного новичок в boto3 и python.