View a markdown version of this page

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 Antwort-Payloads nativ über Lambda-Funktions-URLs oder mithilfe der InvokeWithResponseStream API (über das AWS SDK oder direkte API-Aufrufe) an Clients zurückstreamen. Ihre Lambda-Funktion kann auch Antwort-Payloads über die Amazon API Gateway-Proxy-Integration streamen, die die API zum Aufrufen Ihrer Funktion verwendet. InvokeWithResponseStream 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 Streamen einer Antwort bedeutet auch, dass Ihre Funktion nicht die gesamte Antwort im Speicher speichern muss. Bei sehr großen Antworten kann dies die Menge des Speichers reduzieren, die Sie für Ihre Funktion konfigurieren müssen. Informationen zur Auswahl zwischen Funktions-URLs und API Gateway für Ihren Anwendungsfall finden Sie unterWählen Sie eine Methode, um Ihre Lambda-Funktion über eine HTTP-Anfrage aufzurufen.

Anmerkung

Das Streaming von Lambda-Antworten ist noch nicht in allen AWS-Regionen Bereichen verfügbar. Informationen zur Verfügbarkeit von Funktionen nach Regionen finden Sie unter AWS Funktionen von Builder Center 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 unbegrenzt. 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 kostenpflichtig, und gestreamte Antworten werden nicht unterbrochen oder gestoppt, wenn die aufrufende Client-Verbindung unterbrochen wird. Den Kunden wird die gesamte Funktionsdauer in Rechnung gestellt, weshalb Kunden bei der Konfiguration langer Funktionszeitüberschreitungen Vorsicht walten lassen sollten.

Lambda unterstützt Antwortstreaming auf Node.js verwalteten Laufzeiten. Für andere Sprachen, einschließlich Python, können Sie eine benutzerdefinierte Runtime 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.

Informationen zum Schreiben von Streaming-Funktionen finden Sie unterSchreiben von Antwort-Streaming-fähigen Lambda-Funktionen. Informationen zum Aufrufen von Streaming-Funktionen über Funktions-URLs finden Sie unterAufrufen einer für Response-Streaming aktivierten Funktion mithilfe der Lambda-Funktion URLs. Eine Schritt-für-Schritt-Anleitung finden Sie unter Tutorial: Erstellen einer Lambda-Funktion zum Streamen von Antworten mit einer Funktions-URL.

Bandbreitenbegrenzung für Antwort-Streaming

Die ersten 6 MB der Antwort-Nutzlast Ihrer Funktion haben eine unbegrenzte Bandbreite. Nach diesem ersten Burst streamt Lambda Ihre Antwort mit einer maximalen Rate von 2 Mbit/s. Wenn Ihre Funktionsantworten nie größer als 6 MB sind, gilt diese Bandbreitenbegrenzung nicht.

Anmerkung

Bandbreitenbeschränkungen gelten nur für die Antwort-Nutzlast Ihrer Funktion und nicht für den Netzwerkzugriff Ihrer Funktion.

Die Rate der unbegrenzten Bandbreite hängt von einer Reihe von Faktoren ab, einschließlich der Verarbeitungsgeschwindigkeit Ihrer Funktion. Normalerweise können Sie für die ersten 6 MB der Antwort Ihrer Funktion mit einer Geschwindigkeit von mehr als 2 Mbit/s 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:

  • Lambda-Funktions-URLs unterstützen kein Antwort-Streaming innerhalb einer VPC-Umgebung.

  • Sie können das Antwort-Streaming innerhalb einer VPC verwenden, indem Sie Ihre Lambda-Funktion mithilfe der API über das AWS SDK 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