Einschränkungen für Lambda@Edge
Die folgenden Einschränkungen gelten nur für Lambda@Edge.
Inhalt
Hinweise zu -Kontingenten finden Sie unter Kontingente für Lambda@Edge.
DNS-Auflösung
CloudFront führt für den Ursprungsdomainnamen eine DNS-Auflösung durch, bevor die Lambda@Edge-Funktion der Ursprungsanforderung ausgeführt wird. Wenn Probleme mit dem DNS-Service für Ihre Domain auftreten und CloudFront den Domainnamen nicht auflösen kann, um die IP-Adresse abzurufen, wird Ihre Lambda@Edge-Funktion nicht aufgerufen. CloudFront gibt den HTTP-Statuscode 502 (Bad Gateway) an den Client zurück. Weitere Informationen finden Sie unter DNS-Fehler (NonS3OriginDnsError).
Wenn Ihre Funktionslogik den Ursprungsdomainnamen ändert, führt CloudFront nach Ausführung der Funktion eine weitere DNS-Auflösung für den aktualisierten Domainnamen durch.
Weitere Informationen zur Verwaltung des DNS-Failovers finden Sie unter Konfigurieren von DNS-Failover im Entwicklerhandbuch für Amazon Route 53.
HTTP-Statuscodes
Lambda@Edge-Funktionen für Viewer-Antwortereignisse können den HTTP-Statuscode der Antwort nicht ändern, unabhängig davon, ob die Antwort vom Ursprung oder vom CloudFront-Cache stammt.
Version der Lambda-Funktion
Sie müssen eine nummerierte Version der Lambda-Funktion verwenden, nicht jedoch $LATEST oder Aliase.
Lambda-Region
Die Lambda-Funktion muss sich in der Region USA Ost (Nord-Virginia) befinden.
Lambda-Rollenberechtigungen
Um Auslöser hinzufügen zu können, muss die Ihrer Lambda-Funktion zugewiesene IAM-Ausführungsrolle von den Haupt-Services lambda.amazonaws.com und edgelambda.amazonaws.com eingenommen werden können. Weitere Informationen finden Sie unter Einrichten von IAM-Berechtigungen und -Rollen für Lambda@Edge.
Lambda-Funktionen
Die folgenden Lambda-Funktionen werden von Lambda@Edge nicht unterstützt:
-
Andere Lambda-Laufzeit-Verwaltungskonfigurationen als Automatisch (Standard)
-
Konfiguration Ihrer Lambda-Funktion für den Zugriff auf Ressourcen in Ihrer VPC
-
Lambda-Funktion für Warteschlangen für unzustellbare Nachrichten
-
Lambda-Umgebungsvariablen (mit Ausnahme von reservierten Umgebungsvariablen, die automatisch unterstützt werden)
-
Lambda-Funktionen mit dem Verwalten von AWS Lambda-Abhängigkeiten mit Ebenen
-
Parallelität per Lambda
Anmerkung
Lambda@Edge-Funktionen nutzen dieselben regionalen Parallelitätsfunktionen wie alle Lambda-Funktionen. Weitere Informationen finden Sie unter Kontingente für Lambda@Edge.
-
Lambda-Funktionen mit mehr als 512 MB flüchtigem Speicher
-
Verwenden eines kundenseitig verwalteten Schlüssels zur Verschlüsselung Ihrer ZIP-Bereitstellungspakete
Unterstützte Laufzeiten
Lambda@Edge unterstützt die neuesten Versionen von Node.js und Python-Laufzeiten. Eine Liste der unterstützten Versionen und ihrer zukünftiger Verfallsdaten finden Sie unter Unterstützte Laufzeiten im Entwicklerhandbuch für AWS Lambda.
Tipp
-
Es hat sich bewährt, die neuesten Versionen der bereitgestellten Laufzeiten für Leistungsverbesserungen und neue Funktionen zu verwenden.
-
Sie können mit veralteten Version von Node.js keine Funktionen erstellen oder aktualisieren. Sie können bestehende Funktionen dieser Versionen nur mit CloudFront-Distributionen verknüpfen. Funktionen dieser Versionen, die Distributionen zugeordnet sind, werden weiterhin ausgeführt. Wir empfehlen jedoch, Ihre Funktion auf neuere Versionen von Node.js zu verschieben. Weitere Informationen finden Sie unter Richtlinie für den Laufzeitablauf im Entwicklerhandbuch für AWS Lambda und im Node.js-Release-Zeitplan
auf GitHub.
CloudFront-Header
Lambda@Edge-Funktionen können jeden der in Hinzufügen von CloudFront-Anforderungsheadern aufgeführten CloudFront-Header lesen, bearbeiten, entfernen oder hinzufügen.
Hinweise
-
Wenn CloudFront diese Header hinzufügen soll, müssen Sie CloudFront so konfigurieren, dass sie mithilfe einer Cache-Richtlinie oder Ursprungsanforderungsrichtlinie hinzugefügt werden.
-
CloudFront fügt die Header nach dem Viewer-Anforderungsereignis hinzu, was bedeutet, dass sie Lambda@Edge-Funktionen in einer Viewer-Anforderungsfunktion nicht zur Verfügung stehen. Die Header sind nur für Lambda@Edge-Funktionen in einer Ursprungsanfrage und einer Ursprungsantwort verfügbar.
-
Wenn die Viewer-Anforderung Header mit diesen Namen enthält und Sie CloudFront so konfiguriert haben, dass diese Header mithilfe einer Cache-Richtlinie oder Ursprungsanforderungsrichtlinie hinzugefügt werden, überschreibt CloudFront die Header-Werte, die in der Viewer-Anforderung waren. Viewer-Funktionen sehen den Header-Wert aus der Viewer-Anforderung, während Funktionen, die mit Ursprüngen verbunden sind, den Header-Wert sehen, den CloudFront hinzugefügt hat.
-
Wenn eine Viewer-Anforderungsfunktion den Header
CloudFront-Viewer-Countryhinzufügt, schlägt die Validierung fehl und CloudFront gibt den HTTP-Statuscode 502 (Bad Gateway) an den Viewer zurück.
Einschränkungen für Anforderungstext mit der Option „Text einschließen“
Wenn Sie die Option Text einschließen auswählen, um den Anforderungstext an die Lambda@Edge-Funktion weiterzugeben, beachten Sie die folgenden Informationen und Größenbeschränkungen für die Teile des Textes, die offengelegt oder ersetzt werden.
-
CloudFront base64-kodiert immer den Anforderungstext, bevor er Lambda@Edge zur Verfügung stellt.
-
Wenn der Anforderungs-Fließtext sehr umfangreich ist, wird er von CloudFront vor der Weitergabe an Lambda@Edge wie folgt abgeschnitten:
-
Bei Viewer-Anforderungsereignissen wird der Fließtext bei 40 KB abgeschnitten.
-
Bei Ursprungsanforderungsereignissen wird der Fließtext bei 1 MB abgeschnitten.
-
-
Wenn Sie schreibgeschützt auf den Anforderungs-Fließtext zugreifen, sendet CloudFront den gesamten ursprünglichen Anforderungs-Fließtext an den Ursprung.
-
Wenn Ihre Lambda@Edge-Funktion den Anforderungstext ersetzt, gelten die folgenden Größenbeschränkungen für den Text, den die Funktion zurückgibt:
-
Wenn die Lambda@Edge-Funktion den Textkörper als Klartext zurückgibt:
-
Bei Viewer-Anforderungsereignissen ist der Text auf 40 KB beschränkt.
-
Bei Ursprungsanforderungsereignissen ist der Text auf 1 MB beschränkt.
-
-
Wenn die Lambda@Edge Funktion den Textkörper als base64-codierten Text zurückgibt:
-
Bei Viewer-Anforderungsereignissen ist der Text auf 53,2 KB beschränkt.
-
Bei Ursprungsanforderungsereignissen ist der Text auf 1,33 MB beschränkt.
-
-
Anmerkung
Wenn Ihre Lambda@Edge-Funktion einen Text zurückgibt, der diese Grenzwerte überschreitet, schlägt Ihre Anforderung mit dem HTTP-Statuscode 502 (Lambda-Validierungsfehler) fehl. Wir empfehlen Ihnen, Ihre Lambda@Edge-Funktion so zu aktualisieren, dass der Text diese Grenzwerte nicht überschreitet.
Antwort-Timeout und Keep-Alive-Timeout (nur benutzerdefinierte Ursprünge)
Wenn Sie Lambda@Edge-Funktionen verwenden, um das Antwort-Timeout oder das Keep-Alive-Timeout für Ihre Distributionsursprünge festzulegen, stellen Sie sicher, dass Sie einen Wert angeben, den Ihr Ursprung unterstützen kann. Weitere Informationen finden Sie unter Kontingent für Antwort- und Keep-Alive-Timeout.