Недавно я столкнулся с проблемой, когда команда администраторов должна получать уведомление, когда какой-либо пользователь удаляет какой-либо объект из 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.