So abonnieren Sie mehrere Lambda-Funktionen für dieselbe SQS-Warteschlange

So abonnieren Sie mehrere Lambda-Funktionen für dieselbe SQS-Warteschlange

Was ich erreichen möchte, ist, die Anzahl der Verbraucher einer definierten Warteschlange mithilfe von Lambda-Funktionen zu skalieren, anstatt mithilfe von „selbstgehosteten“ Abonnenten.

Ich möchte beispielsweise, event-queuedass mehrere Verbraucher eindeutige Nachrichten aus derselben Warteschlange verarbeiten, so wie ich es einfach mit einem Cluster von Prozessen tun würde, aber ich möchte die in der Cloud gehosteten Lambda-Funktionen verwenden. Bisher habe ich nur herausgefunden, wie man sich mit einer einzigen Funktion ohne Skalierungsoption anmeldet.

Antwort1

Ich fand diesen sehr hilfreichen Artikel voncloudonaut.io(von Andreas Wittig), die einen Ansatz für mehrere AWS-Lambdas-Verbraucher veranschaulichen:

SQS und Lambda integrieren: serverlose Architektur für asynchrone Workloads

Um die Lösung von Andreas zu skalieren, können Sie verwendenAWS CloudWatch-Alarmeaus Ihrer AWS SQS-Warteschlange und TiggerAWS CloudFormation(und/oderServerloses AWS-Anwendungsrepository), um bei Bedarf weitere AWS-Lambda-Verbraucher zu starten.

Ein anderer Ansatz besteht darin,Amazon MQ.

Wenn du benutztAmazon Simple Notification Service (SNS)oderAWS Kinesis, dieselbe Nachricht löst unterschiedliche Lambdas aus und Sie erhalten wahrscheinlich doppelte Aktionen zwischen Ihren Lambdas.

[aktualisieren]

Jetzt ist es möglich, Amazon Simple Queue Service als Auslöser für AWS Lambda zu verwenden:

Mehr Infos hier:https://aws.amazon.com/blogs/aws/aws-lambda-adds-amazon-simple-queue-service-to-supported-event-sources/

verwandte Informationen