Kann ich eine Amazon AWS Lamda-Funktion erstellen, die durch die Erstellung eines S3-Buckets ausgelöst wird?

520
G-.

Ich möchte eine E-Mail senden, wenn ein neuer Bucket in unserem AWS-Konto erstellt wird. Ich würde es vorziehen, dass es nahezu augenblicklich ist, also vorzugsweise nicht zeitgesteuert, sondern durch das CreatBucket-Ereignis direkt ausgelöst wird.

Wenn ich versuche, eine neue Funktion zu erstellen und einen S3-Trigger zu konfigurieren, ist die Bucket-Auswahl obligatorisch

-1
Ihre Frage ist hier ein Thema, lesen Sie bitte die Beschreibung von [tag: amazon-web-services]. Máté Juhász vor 6 Jahren 0
Können Sie vorschlagen, wo es angemessener ist? Ich habe unten eine hilfreiche Antwort erhalten, und ähnliche Fragen zu ähnlichen VMware-Funktionen scheinen auf der Website zulässig zu sein G-. vor 6 Jahren 0

1 Antwort auf die Frage

2
roryrjb

BEARBEITEN

Wie @ michael-sqlbot in den Kommentaren hervorgehoben hat, ist das, was Sie erreichen wollen, mit einem mehrstufigen Prozess möglich. CloudTrail kann S3-Bucket-Level-Ereignisse ( https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudtrail-logging.html ) einschließlich der Bucket-Erstellung protokollieren. Anschließend können Sie CloudWatch- Ereignisse und schließlich Sie generieren können bestimmte CloudWatch-Ereignisse als Auslöser für Lambda verwenden.


Dies wird nicht direkt unterstützt, hier ist die Liste aller Ereignisse, die von S3 generiert werden können:

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

Amazon S3-APIs wie PUT, POST und COPY können ein Objekt erstellen. Mit diesen Ereignistypen können Sie die Benachrichtigung aktivieren, wenn ein Objekt mit einer bestimmten API erstellt wird, oder Sie können den Ereignistyp s3: ObjectCreated: * verwenden, um die Benachrichtigung unabhängig von der zum Anlegen eines Objekts verwendeten API anzufordern.

Sie erhalten keine Ereignisbenachrichtigungen von fehlgeschlagenen Vorgängen.

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

Mithilfe der EventRemoved-Ereignistypen können Sie die Benachrichtigung aktivieren, wenn ein Objekt oder ein Objektstapel aus einem Bucket entfernt wird.

Sie können eine Benachrichtigung anfordern, wenn ein Objekt gelöscht wird oder ein versioniertes Objekt endgültig gelöscht wird, indem Sie den Ereignistyp s3: ObjectRemoved: Delete verwenden. Sie können auch eine Benachrichtigung anfordern, wenn eine Löschmarkierung für ein versioniertes Objekt erstellt wird, indem Sie s3: ObjectRemoved: DeleteMarkerCreated verwenden. Informationen zum Löschen von versionierten Objekten finden Sie unter Löschen von Objektversionen. Sie können auch einen Platzhalter s3: ObjectRemoved: * verwenden, um eine Benachrichtigung anzufordern, wenn ein Objekt gelöscht wird.

Sie erhalten keine Ereignisbenachrichtigungen durch automatische Löschungen aus Lebenszyklusrichtlinien oder durch fehlgeschlagene Vorgänge.

  • s3:ReducedRedundancyLostObject

Sie können diesen Ereignistyp verwenden, um Amazon S3 zum Senden einer Benachrichtigung anzufordern, wenn Amazon S3 feststellt, dass ein Objekt der RRS-Speicherklasse verloren geht.

Alle Ereignisse arbeiten auf Objektebene, sodass der Bucket vorhanden ist.

Quelle: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types .

Obwohl dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. Donald Duck vor 6 Jahren 1
@ DonaldDuck Ich habe die Antwort mit mehr Details aktualisiert. roryrjb vor 6 Jahren 0
Ist das deine endgültige Antwort? AWS CloudTrail kann API-Aufrufe für S3-Bucket-Erstellung erfassen: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-services.html#cloudtrail-supported-services-storage-and-content-delivery Michael - sqlbot vor 6 Jahren 1
@ Michael-sqlbot Danke für den Hinweis. Ich habe meine Antwort aktualisiert. roryrjb vor 6 Jahren 1
Ich überprüfe das Dokument heute Morgen. Es sieht so aus, als könnte es genau das sein, was ich brauche G-. vor 6 Jahren 0
Dies funktioniert über SNS, um eine schnelle und fehlerhafte E-Mail zu senden, und es könnte angezeigt werden, eine E-Mail in node.js zu erstellen. Das wird die Arbeit machen. Vielen Dank G-. vor 6 Jahren 0