Der Hauptvorteil der serverlosen Architektur soll sein, dass solche Programme keinen dedizierten Server benötigen, um kontinuierlich ausgeführt zu werden. Werden dann auf eine Anfrage aufgerufen und hören beim Beenden der Funktion auf.
Dies bedeutet, dass ein serverloses Programm schnell gestartet werden muss, um reagieren zu können. Wie geht es dann mit zeitaufwändigen Aktionen wie der Datenbankverbindung um? Stellt es jedes Mal eine Verbindung zur Datenbank her oder verwaltet es die Datenbankverbindung separat, um Aufrufe wie in Serveranwendungen auszuführen?
quelle
Es hängt davon ab, ob.
Die Implementierung des Lambda-Läufers hinter den Kulissen wird dies beeinflussen. Wir können sehen, dass der Container in AWS möglicherweise wiederverwendet wird.
http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html
So konnten wir zumindest für einige Anfragen Verbindungspooling / Wiederverwendung sehen. Außerdem sollten wir die Datenbank selbst und die Behandlung eingehender Verbindungsanfragen berücksichtigen.
Diese Art von Frage unterstreicht für mich einige der Probleme mit "serverlos", es ist noch sehr neu und unreif, so dass die Details nicht herausgearbeitet wurden.
Wir sollten uns immer daran erinnern, dass serverlos keine Server bedeutet. Wenn die Rate, mit der Sie ein Lambda aufrufen, hoch genug ist, werden möglicherweise mehrere Server oder Container ausgeführt.
In der Praxis können die Startzeit und Ressourcen wie IP-Adressen von Lambdas ein echtes Problem sein. Vielleicht wird sich im Laufe der Zeit ein Konsens darüber ergeben, wie sie ausgeführt werden sollen, und diese Probleme werden solide Antworten erhalten.
quelle