Необходимо создать снимок тома с помощью python3 и boto3 для определенного региона.

Мне нужно создать моментальный снимок всех томов, присутствующих в регионе в 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)

Сценарий отлично работает только для региона по умолчанию, но когда я создаю тома в любом другом регионе, он не удосуживается сделать снимок этих томов. Может кто-нибудь помочь?

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
1
0
17
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете указать регион при создании клиента ec2 с помощью Config.

Ссылка: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html

Позвольте мне попробовать использовать это, я немного новичок в boto3 и python.

sidharth vijayakumar 17.05.2022 06:12

Спасибо, я использовал клиент, чтобы указать регион, и я также обновил ответ своим скриптом на случай, если кто-то еще столкнется с тем же самым senario.

sidharth vijayakumar 17.05.2022 06:48

Проведя дополнительные исследования, я увидел, что приведенный ниже скрипт отлично работает для меня.

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!')

Другие вопросы по теме