2016-08-05 1 views
2

Von dem, was ich verstehe, Wenn ich eine Lambda-Funktion hinter API-Gateway zu halten, würde ich eine RDS-Verbindung bei jedem Lambda-Funktionsaufruf vornehmen müssen. Das würde die Dinge verlangsamen, weil ich keine Verbindungen bündeln könnte. Wenn dies der Fall ist, wäre eine Migration einiger REST-Dienste auf api gateway + lambda lohnenswert?Herstellen von DB-Verbindungen innerhalb von Lambda, das API-Gateway ist

Antwort

4

In AWS Lambda wird der außerhalb von Handler aufgerufene Code zwischen Anforderungen zwischengespeichert. Ich weiß nicht, welche Sprache Sie für Ihre Funktionen verwenden, aber Sie können diesen Artikel zu sehen: http://blog.matthewdfuller.com/2015/12/aws-lambda-occasionally-reliable-caching.html

Also, wenn Ihre Datenbankverbindung außerhalb des Handlers erfolgt, halten Sie es zwischen verschiedenen Anfragen und stellen Sie keine Verbindung zu Ihrem Datenbank für jede Anfrage.

+0

Eine genauere Aussage wäre: „der Code außerhalb des Handlers ist *** gelegentlich *** bei Anfragen im Cache gespeichert“. –

+0

Das stimmt. Ich würde sagen * allgemein *, denn nach unseren Tests müssen Sie ziemlich viel Verkehr haben, bis eine neue Instanz erscheint. –

1

Sie sollten einige Verbindungswiederverwendung sehen, besonders bei Dauerlast. Einige Anfragen erhielten einen warmen Container, der vor Kurzem die gleiche Funktion ausgeführt hatte, so wie Cagatay es erwähnte, jeder Code außerhalb des Handlers könnte möglicherweise initialisiert werden.

Der Handler-Code sollte in der Lage sein, eine offene Verbindung zu verwenden oder bei Bedarf eine neue einzurichten.

Verwandte Themen