Используем Amazon SDK в python boto3
Amazon Web Services (AWS)- это облачная платформа, разработанная и поддерживаемая компанией Amazon c 2006 года. Эта платформа предоставляет огромное количествео сервисов , которые вы можете использовать для решения самых различных задач
В данной статье мы рассмотрим библиотеку Boto3 , которая предоставляет SDK для работы с AWS с использованием языка программирования Python
Установливаем самую последную версию Boto3
pip install boto3
Для авторизации на AWS нам нужны aws_access_key_id и aws_secret_access_key
Для этого нам нужно зарегистрироваться на AWS.
Учетные данные для вашей учетной записи AWS можно найти в консоли IAM.
В boto3 есть два разных уровня API
Клиентские(низкоуровневые) API
API ресурсов
Так начнем работу с AWS. Многие наверно слышали о самом популярном сервисе AWS , который представляет собой файловое хранилище и которое именуется Amazon Simple Storage Service (S3). Файлы хранятся в бакетах(buckets), в которых также можно создавать директории
В первом примере мы авторизуемся на AWS и посмотрим какие имеются у нам buckets
import boto3
client = boto3.client(
's3',
# Так делать не рекомендуется
aws_access_key_id='ваш access_key_id',
aws_secret_access_key='ваш secret_access_key'
)
response = client.list_buckets()
print('Ваши buckets:')
for bucket in response['Buckets']:
print(f' {bucket["Name"]}')
Во-втором примере мы попытаемся создать новый бакет. Но перед этим мы создадим файл ~/.aws/credentials, где будут храниться наши aws_access_key_id и aws_secret_access_key. Этот файл представляет собой файл в формате INI с именами разделов, соответствующими профилям. Для каждого раздела могут быть указаны три указанные выше конфигурационные переменные: aws_access_key_id, aws_secret_access_key, aws_session_token. Это единственные поддерживаемые значения в общем файле учетных данных.
Устанавливаем библиотеку awscli
pip install awscli
Далеее запускаем команду aws configure:
$ aws configure
AWS Access Key ID: _your_access_key
AWS Secret Access Key: your_secret_access_key
Default region name [us-west-2]: your_region
Default output format [None]: json
Теперь вам не нужно передавать aws_access_key_id и aws_secret_access_key в метод client.Boto3 сам их возьмет из файла ~/.aws/credentials
Теперь напишем сам код , который создает новый бакет
import logging
import boto3
from botocore.exceptions import ClientError
def create_bucket(name, region=None):
try:
s3_client = boto3.client('s3')
s3_client.create_bucket(Bucket=name)
except ClientError as e:
logging.error(e)
return False
return True
#Обратите внимание ,что имя бакета должно быть уникальным
bucket_name = "your_unique_bucket_name"
create_bucket(bucket_name)
s3 = boto3.client('s3')
response = s3.list_buckets()
print('Existing buckets:')
for bucket in response['Buckets']:
print(f' {bucket["Name"]}')
При создании нового bucket нужно обратить внимание на то, что название должно быть уникалным и еще после создания нельзя менять регион , где расположен этот bucket
Заключение
В этой статье были рассмотрены базовые возможности библиотеки boto3 , которые включали в себе вывод и создание buckets