Могу ли я создать функцию Amazon AWS Lamda, которая запускается при создании корзины S3?

420
G-.

Я хотел бы отправить письмо, когда на нашем аккаунте AWS будет создано новое ведро. Я предпочел бы, чтобы это было почти мгновенно, поэтому желательно не запланированное время, а вызванное событием CreatBucket напрямую.

Когда я пытаюсь создать новую функцию и настроить триггер S3, выбор корзины является обязательным

-1
Ваш вопрос не по теме, пожалуйста, прочитайте описание [tag: amazon-web-services] Máté Juhász 6 лет назад 0
Можете ли вы предложить, где может быть более подходящим? Я получил полезный ответ ниже, и подобные вопросы, связанные с аналогичной функциональностью vmware, по-видимому, допустимы на сайте. G-. 6 лет назад 0

1 ответ на вопрос

2
roryrjb

РЕДАКТИРОВАТЬ

Как отметил @ michael-sqlbot в комментариях, то, что вы пытаетесь достичь, возможно, но с помощью многоэтапного процесса. CloudTrail может регистрировать события уровня S3 на уровне сегмента ( https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudtrail-logging.html ), включая создание сегмента, затем его можно настроить для генерации событий CloudWatch и, наконец, может использовать определенные события CloudWatch в качестве триггеров для Lambda.


Это не поддерживается напрямую, вот список всех событий, которые могут быть сгенерированы S3:

  • s3:ObjectCreated:*
  • s3:ObjectCreated:Put
  • s3:ObjectCreated:Post
  • s3:ObjectCreated:Copy
  • s3:ObjectCreated:CompleteMultipartUpload

API Amazon S3, такие как PUT, POST и COPY, могут создавать объекты. Используя эти типы событий, вы можете включить уведомление при создании объекта с использованием определенного API или использовать тип события s3: ObjectCreated: * для запроса уведомления независимо от API, который использовался для создания объекта.

Вы не будете получать уведомления о событиях от неудачных операций.

  • s3:ObjectRemoved:*
  • s3:ObjectRemoved:Delete
  • s3:ObjectRemoved:DeleteMarkerCreated

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

Вы можете запросить уведомление при удалении объекта или удалении объекта с контролем версий, используя тип события s3: ObjectRemoved: Delete. Или вы можете запросить уведомление при создании маркера удаления для версионного объекта с помощью s3: ObjectRemoved: DeleteMarkerCreated. Для получения информации об удалении версионных объектов см. Удаление версий объекта. Вы также можете использовать подстановочный знак s3: ObjectRemoved: * для запроса уведомления каждый раз, когда объект удаляется.

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

  • s3:ReducedRedundancyLostObject

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

Все события работают на уровне объекта, требуя наличия корзины.

Источник: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types .

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными в случае изменения связанной страницы. Donald Duck 6 лет назад 1
@DonaldDuck Я обновил ответ более подробно. roryrjb 6 лет назад 0
Это ваш окончательный ответ? AWS CloudTrail может перехватывать вызовы API создания корзины S3: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-services.html#cloudtrail-supported-services-storage-and-content-delivery Michael - sqlbot 6 лет назад 1
@ Michael-sqlbot, спасибо за указание на это. Я обновил свой ответ. roryrjb 6 лет назад 1
Я проверяю этот документ сегодня утром, похоже, что это именно то, что мне нужно G-. 6 лет назад 0
Это работает SNS для отправки быстрого и грязного электронного письма и может быть использовано для создания электронного письма в node.js. Это сделает работу. Спасибо G-. 6 лет назад 0