View a markdown version of this page

Einschränkungen für Lambda@Edge - Amazon CloudFront

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.

Einschränkungen für Lambda@Edge

Die folgenden Einschränkungen gelten nur für Lambda@Edge.

Hinweise zu Kontingenten finden Sie unter Kontingente für Lambda@Edge.

DNS-Auflösung

CloudFront führt eine DNS-Auflösung für den ursprünglichen Domainnamen durch, bevor es die Lambda @Edge -Funktion Ihrer ursprünglichen Anfrage ausführt. Wenn beim DNS-Dienst für Ihre Domain Probleme auftreten und der Domainname nicht aufgelöst werden CloudFront kann, um die IP-Adresse zu erhalten, wird Ihre Lambda @Edge -Funktion nicht aufgerufen. CloudFrontgibt einen HTTP 502-Statuscode (Bad Gateway) an den Client zurück. Weitere Informationen finden Sie unter DNS-Fehler (NonS3OriginDnsError).

Wenn Ihre Funktionslogik den ursprünglichen Domainnamen ändert, CloudFront wird nach Abschluss der Ausführung der Funktion eine weitere DNS-Auflösung für den aktualisierten Domainnamen durchgeführt.

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 Zuschauer-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:

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 mit diesen Versionen nur Distributionen zuordnen. CloudFront 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 Runtime Deprecation Policy im AWS Lambda Developer Guide und im Release-Zeitplan von Node.js unter. GitHub

CloudFront Kopfzeilen

Lambda @Edge -Funktionen können jeden der unter aufgeführten CloudFront Header lesen, bearbeiten, entfernen oder hinzufügen. CloudFront Anforderungsheader hinzufügen

Hinweise
  • Wenn Sie diese Header hinzufügen CloudFront möchten, müssen Sie sie so konfigurieren CloudFront , dass sie mithilfe einer Cache-Richtlinie oder einer Origin-Request-Richtlinie hinzugefügt werden.

  • CloudFront fügt die Header nach dem Viewer-Anforderungsereignis hinzu, was bedeutet, dass die Header für Lambda @Edge -Funktionen in einer Viewer-Anfrage nicht verfügbar sind. Die Header sind nur für Lambda@Edge-Funktionen in einer Ursprungsanfrage und einer Ursprungsantwort verfügbar.

  • Wenn die Viewer-Anfrage Header mit diesen Namen enthält und Sie so konfiguriert CloudFront haben, dass diese Header mithilfe einer Cache-Richtlinie oder einer Ursprungsanforderungsrichtlinie hinzugefügt wurden, werden die Header-Werte, die in der Viewer-Anfrage enthalten waren, CloudFront überschrieben. Funktionen, die dem Betrachter zugewandt sind, sehen den Header-Wert aus der Viewer-Anfrage, wohingegen Funktionen, die an den Ursprung gerichtet sind, den Header-Wert sehen, der hinzugefügt wurde. CloudFront

  • Wenn eine Viewer-Anforderungsfunktion den CloudFront-Viewer-Country Header hinzufügt, schlägt sie bei der Überprüfung 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 immer base64 kodiert den Hauptteil der Anfrage, bevor er Lambda @Edge zur Verfügung gestellt wird.

  • Wenn der Anforderungstext groß ist, CloudFront kürzt er ihn, bevor er Lambda @Edge zur Verfügung gestellt wird, wie folgt:

    • 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 Anfragetext zugreifen, wird der vollständige ursprüngliche CloudFront Anfragetext an den Ursprung gesendet.

  • 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.