AWS Lambda sind nun in der Lage, Responses an Clients zu streamen. Davon betroffen sind auch Responses, die größer als 6MB sind. Vorher musste man sich bei Lambda-Applikationen auf das gängige Request-Response-Aufrufmodell beschränken – das ist nun nicht mehr der Fall, da Lambda partielle Antworten streamen kann.
Der Vorteil von Lambda Response payload Streaming ist, das nun keine vollständige Antwort generiert und gebuffert werden muss. Dadurch wird die processing time signifikant minimiert und hat somit einen großen Einfluss auf die gesamte Response-Time.
Anwendungsbeispiel: S3-Objekt über Lambda
Vorher sah es so aus: Um ein Objekt aus S3 zum Client zu übertragen, musste der Client vorher die S3-URL anfragen, die dann in der Lambda zurückgegeben wurde. Ein zweiter Request gegen S3 wurde initiiert, um das Objekt downzuloaden.
Jetzt kann Lambda selbst das Objekt von S3 anfragen und die Response dann zum Client streamen.
Weitere Beispiele findet man im AWS-Blog.
Technische Impediments
Ein paar Dinge gilt es allerdings noch zu beachten:
- Support zurzeit nur für
Node.js 14.x
-Runtime - kein Support für *Api Gateway und Application Loadbalancer
- Invocation: Lambda Funktions-URL, als CloudFront Origin oder über AWS SDK über Lambda Invoke API
- *Api Gateway kann verwendet werden, um große Endobjekte zu returnen
Schreibe einen Kommentar