Управление ведрами Amazon S3 с помощью уведомлений о событиях с AWS SQS

Недавно я столкнулся с проблемой, когда команда администраторов должна получать уведомление, когда какой-либо пользователь удаляет какой-либо объект из S3-объекта. Если у вас тоже есть подобное требование, когда команда должна получать уведомления всякий раз, когда объект создается, удаляется или изменяется, то здесь на помощь приходят уведомления о событиях.

Вы можете использовать функцию уведомлений о событиях AWS S3 для получения уведомлений по следующим направлениям, когда в ведре AWS S3 происходят определенные события.

  • Темы Amazon Simple Notification Service (Amazon SNS)
  • Очереди Amazon Simple Queue Service (Amazon SQS)
  • Функция AWS Lambda

В этой статье я буду настраивать очереди AWS SQL как место назначения для отслеживания событий удаления из моего ведра S3.

Настройка очередей AWS SQL для отслеживания событий удаления из ведра S3
Шаг 1

Войдите в консоль AWS

Шаг 2

Перейдите к ведру S3 и создайте новое ведро, если оно не существует. Я уже создал ведро с именем ‘mydemobucket198’.

Шаг 3

Перейдите в раздел «Свойства».

Шаг 4

Прокрутите страницу вниз, пока не появится раздел Уведомление о событиях. Нажмите на кнопку Создать уведомление о событии.

Шаг 5

Появится окно для заполнения данных для создания нового уведомления о событии. В качестве имени события я указал ‘s3_notify’.

Шаг 6

Появится список событий, которые в настоящее время поддерживаются, например, создание объекта, удаление объекта и т.д. Для этой статьи я выбрал пункт «Удаление объекта», поэтому всякий раз, когда пользователь будет удалять любой объект S3, я буду получать уведомление.

Шаг 7

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

Я выбрал очереди SQL, поэтому уведомление будет отправлено в очереди SQS, которые впоследствии могут быть прочитаны сервером и выполнены соответствующие действия.

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

Шаг 8

Перейдите в службу Amazon SQS и нажмите на кнопку Создать очередь.

Шаг 9

Введите имя очереди SQS как ‘s3_delete_notify’ и выберите все настройки по умолчанию.

Шаг 10

Когда очередь SQS будет создана, перейдите к политике доступа.

Шаг 11

Нам нужно изменить политику доступа, чтобы отправлять сообщение из ведра S3 при удалении любого объекта.

Шаг 12

Нажмите на Edit и вставьте следующий код политики доступа —

{
«Версия»: «2012-10-17»,
«Id»: «Policy1651140347168»,
«Statement»: [
{
«Sid»: «Stmt1651140341677»,
«Effect»: «Разрешить»,
«Principal»: «*»,
«Action»: «sqs:SendMessage»,
«Resource»: «arn:aws:sqs:ap-south-1:464473132183:s3_delete_notify»
}
]
}

Не забудьте заменить значение ARN на свою очередь SQL.

Шаг 13

Обновите страницу и выберите очередь SQS, которую мы только что создали в описанных выше шагах. Нажмите на кнопку Сохранить изменения.

Шаг 14

Перейдите в ведро S3 и загрузите несколько файлов.

Шаг 15

Выберите любой файл и нажмите на кнопку Удалить. Я выбрал photo-1.jpeg и удалил этот файл.

Шаг 16

Перейдите в очередь SQS ‘s3_delete_notify’ и нажмите на кнопку Send and receive message.

Шаг 17

Нажмите на кнопку Poll for messages, чтобы извлечь сообщения.

Шаг 18

Как вы можете видеть, выбранный ID связан с объектом S3, который был удален.

Есть и другой ID, который был создан AWS для первоначального тестирования при создании очереди.

Шаг 19

После нажатия на ID сообщения, вы можете увидеть подробности в теле сообщения. В нашем случае мы видим имя ведра S3 с именем объекта S3 photo-1.jpeg, который был удален.

Заключение

С помощью уведомления о событиях S3 вы можете включить уведомление о таких событиях, как создание, удаление и изменение объектов S3, используя направления Amazon SNS, Amazon SQS и AWS Lambda.

Оцените статью
Procodings.ru
Добавить комментарий