Bewährte Methoden mit Lambda - Amazon-DynamoDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bewährte Methoden mit Lambda

Eine AWS Lambda Funktion wird in einem Container ausgeführt — einer Ausführungsumgebung, die von anderen Funktionen isoliert ist. Wenn Sie eine Funktion zum ersten Mal ausführen, AWS Lambda wird ein neuer Container erstellt und mit der Ausführung des Funktionscodes begonnen.

Eine Lambda-Funktion hat einen Handler, der einmal pro Aufruf ausgeführt wird. Der Handler enthält die Hauptgeschäftslogik für die Funktion. Die Lambda-Funktion in Schritt 4: Erstellen und Testen einer Lambda-Funktion verfügt z. B. über einen Handler, der Datensätze in einem DynamoDB-Stream verarbeiten kann.

Sie können auch Initialisierungscode bereitstellen, der nur einmal ausgeführt wird — nachdem der Container erstellt wurde, aber bevor der Handler zum ersten Mal AWS Lambda ausgeführt wird. Die unter gezeigte Lambda-Funktion Schritt 4: Erstellen und Testen einer Lambda-Funktion hat einen Initialisierungscode, der das SDK für JavaScript in Node.js importiert und einen Client für Amazon SNS erstellt. Diese Objekte sollten nur einmal außerhalb des Handlers definiert werden.

Nachdem die Funktion ausgeführt wurde, AWS Lambda können Sie sich dafür entscheiden, den Container für nachfolgende Aufrufe der Funktion wiederzuverwenden. In diesem Fall kann Ihr Funktions-Handler die Ressourcen, die Sie in Ihrem Initialisierungscode definiert haben, erneut nutzen. (Sie können nicht steuern, wie lange AWS Lambda den Container beibehält oder ob der Container überhaupt wiederverwendet wird.)

Für die Verwendung AWS Lambda von DynamoDB-Triggern empfehlen wir Folgendes:

  • AWS Service-Clients sollten im Initialisierungscode instanziiert werden, nicht im Handler. Dies ermöglicht AWS Lambda die Wiederverwendung vorhandener Verbindungen für die Dauer der Lebensdauer des Containers.

  • Im Allgemeinen müssen Sie Verbindungen nicht explizit verwalten oder Verbindungspooling implementieren, da AWS Lambda dies für Sie erledigt wird.

Ein Lambda-Consumer für einen DynamoDB-Stream garantiert nicht genau eine Lieferung und kann gelegentlich zu Duplikaten führen. Stellen Sie sicher, dass Ihr Lambda-Funktionscode idempotent ist, um zu verhindern, dass unerwartete Probleme aufgrund doppelter Verarbeitung auftreten.

Weitere Informationen finden Sie im Entwicklerhandbuch unter Bewährte Methoden für die AWS Lambda Arbeit mit AWS Lambda Funktionen.