Antwortstreaming für Lambda-Funktionen - AWS Lambda

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.

Antwortstreaming für Lambda-Funktionen

Lambda-Funktionen können Antwortnutzlasten nativ über die Lambda-Funktion URLs oder mithilfe der InvokeWithResponseStreamAPI (über das AWS SDK oder direkte API-Aufrufe) an Clients zurückstreamen. Ihre Lambda-Funktion kann auch Antwort-Payloads über die Amazon API Gateway Gateway-Proxyintegration streamen, die die InvokeWithResponseStreamAPI verwendet, um Ihre Funktion aufzurufen. Antwort-Streaming kann für latenzempfindliche Anwendungen von Vorteil sein, da es die Leistung in der Zeit bis zum ersten Byte (TTFB) verbessert. Dies liegt daran, dass Sie Teilantworten an den Client zurücksenden können, sobald sie verfügbar sind. Darüber hinaus können Antwort-Streaming-Funktionen Nutzdaten bis zu 200 MB zurückgeben, verglichen mit dem Maximum von 6 MB für gepufferte Antworten. Das Streameng einer Antwort bedeutet auch, dass Ihre Funktion nicht die gesamte Antwort im Speicher unterbringen muss. Bei sehr großen Antworten kann dies die Menge des Speichers reduzieren, die Sie für Ihre Funktion konfigurieren müssen.

Anmerkung

Lambda-Response-Streaming ist noch nicht in allen AWS-Regionen Bereichen verfügbar. Informationen zur Verfügbarkeit von AWS Funktionen nach Regionen finden Sie in den Funktionen des Builder Centers nach Regionen.

Die Geschwindigkeit, mit der Lambda Ihre Antworten streamt, hängt von der Größe der Antwort ab. Die Streaming-Rate für die ersten 6 MB der Antwort Ihrer Funktion ist nicht begrenzt. Bei Antworten, die größer als 6 MB sind, gilt für den Rest der Antwort eine Bandbreitenbegrenzung. Weitere Informationen zur Streaming-Bandbreite finden Sie unter Bandbreitenbegrenzung für Antwort-Streaming.

Streaming-Antworten sind mit Kosten verbunden, und gestreamte Antworten werden nicht unterbrochen oder gestoppt, wenn die Verbindung zum aufrufenden Client unterbrochen wird. Kunden wird die volle Funktionsdauer in Rechnung gestellt, weshalb Kunden bei der Konfiguration langer Funktions-Timeouts Vorsicht walten lassen sollten.

Lambda unterstützt Antwortstreaming auf verwalteten Laufzeiten von Node.js. Für andere Sprachen, einschließlich Python, können Sie eine benutzerdefinierte Laufzeit mit einer benutzerdefinierten Runtime-API-Integration verwenden, um Antworten zu streamen, oder den Lambda Web Adapter verwenden.

Anmerkung

Wenn Sie Ihre Funktion über die Lambda-Konsole testen, werden die Antworten immer gepuffert angezeigt.

Bandbreitenbegrenzung für Antwort-Streaming

Für die ersten 6 MB der Nutzlast Ihrer Funktion gibt es keine Bandbreitenbegrenzung. Nach diesem ersten Burst streamt Lambda Ihre Antwort mit einer maximalen Rate von 2. MBps Wenn Ihre Funktionsantworten nie größer als 6 MB sind, gilt diese Bandbreitenbegrenzung nicht.

Anmerkung

Bandbreitenbegrenzungen gelten nur für die Antwortnutzlast Ihrer Funktion und nicht für den Netzwerkzugriff durch Ihre Funktion.

Die Rate der unbegrenzten Bandbreite hängt von einer Reihe von Faktoren ab, einschließlich der Verarbeitungsgeschwindigkeit Ihrer Funktion. Normalerweise können Sie MBps für die ersten 6 MB der Antwort Ihrer Funktion mit einer Rate von mehr als 2 rechnen. Wenn Ihre Funktion eine Antwort an ein Ziel außerhalb von streamt AWS, hängt die Streaming-Rate auch von der Geschwindigkeit der externen Internetverbindung ab.

VPC-Kompatibilität mit Antwort-Streaming

Bei der Verwendung von Lambda-Funktionen in einer VPC-Umgebung gibt es wichtige Überlegungen zum Antwort-Streaming:

  • Die Lambda-Funktion unterstützt URLs kein Antwort-Streaming innerhalb einer VPC-Umgebung.

  • Sie können Antwort-Streaming innerhalb einer VPC verwenden, indem Sie Ihre Lambda-Funktion über das AWS SDK mithilfe der API aufrufen. InvokeWithResponseStream Das erfordert die Einrichtung der entsprechenden VPC-Endpunkte für Lambda.

  • Für VPC-Umgebungen müssen Sie einen VPC-Schnittstellen-Endpunkt für Lambda erstellen, um die Kommunikation zwischen Ihren Ressourcen in der VPC und dem Lambda-Service zu ermöglichen.

Eine typische Architektur für das Antwort-Streaming in einer VPC könnte Folgendes beinhalten:

Client in VPC -> Interface VPC endpoint for Lambda -> Lambda function -> Response streaming back through the same path