AWS-S3: - Trigger, die mehrere Ziele über S3-Benachrichtigung bei Datei-Eingang
Will ich setup das folgende Ereignis/Meldung die Konfiguration in einer AWS S3 bucket:
Bei Erhalt einer Datei (s3:ObjectCreated:*) zwei Ziele ausgelöst werden soll:
- SQS: die Warteschlange wird die Datei für die detaillierte Nachbearbeitung für einen Zeitraum von ein paar Tagen
- Lambda: schnell sofortiger Metriken Verarbeitung
Wenn ich versuche, das setup, die Konfiguration über die AWS-Konsole bekomme ich folgende Fehlermeldung:
Configurations overlap. Configurations on the same bucket cannot share a common event type. : s3:ObjectCreated:*, s3:ObjectCreated:*
Ich habe versucht, die Konfiguration einrichten, die über AWS-SDK (Java), wie vorgeschlagen, von der Bedienungsanleitung, aber ähnlichen Ergebnis:
Caught an AmazonServiceException, which means your request made it to Amazon S3, but was rejected with an error response for some reason.
Error Message: Configurations overlap. Configurations on the same bucket cannot share a common event type. (Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument; Request ID: A0E8738522EA218F)
HTTP Status Code: 400
AWS Error Code: InvalidArgument
Error Type: Client
Request ID: A0E8738522EA218F
Error XML<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidArgument</Code><Message>Configurations overlap. Configurations on the same bucket cannot share a common event type.</Message><ArgumentName>Event</ArgumentName><ArgumentValue>s3:ObjectCreated:*, s3:ObjectCreated:*</ArgumentValue><RequestId>A0E8738522EA218F</RequestId><HostId>p4qYoIXi38u3Jl3p0xpI7TFWgs0ZxsqK89oDTTy8D/tbw39NnaIT99jIvHIxt4XliRFxqNWl32M=</HostId></Error>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich schlage vor, Sie veröffentlichen sollten
S3 Notifications
zuSNS Topic
und haben IhreLambda function
undSQS Queue
abonnieren Sie dieseSNS Topic
.Diese Architektur soll helfen, Sie erreichen, was Sie suchen.
Beste Lösung ist wahrscheinlich, um die trigger eine SNS-Benachrichtigung, wenn die Dateien hochgeladen S3, und verwenden Sie dann die SNS ist 'fanout' - Funktionalität zum senden von mehreren, simulaneous SQS-Nachrichten, die dann erhalten werden, und handelte selbständig.
Alternativ, wenn Sie nur wollen, um Prozess 'Schritt 2', wenn, und nur wenn 'Schritt 1' bearbeitet wird, dann können Sie auslösen, eine einzige SQS-Nachricht für 'Schritt 1', und dann nur auf den erfolgreichen Abschluss der 'Schritt 1', haben den letzten Akt der 'Schritt 1' das senden eines zweiten sqs-event für 'Schritt 2' für die weitere Verarbeitung.
Tatsächlich dieser Fehler tritt auf, weil Sie versuchen, zu Haken dasselbe Ereignis von verschiedenen Funktionen.
Gehen Sie zu Eimer s
properties
Registerkarte und navigieren Sie zuEvents
AbschnittZum Beispiel, wenn Sie eine "PUT" - event ist bereits registriert, die Eimer, die Sie nicht in der Lage sein zu registrieren, eine "PUT" - event auf eine andere Funktion.