Amazon CloudFront
Entwicklerhandbuch (API-Version 2016-09-29)

Anpassen von Inhalten am Edge mit Lambda@Edge

Lambda@Edge ist eine Erweiterung von AWS Lambda, ein Datenverarbeitungsservice, mit dem Sie Funktionen ausführen können, um die Inhalte, die von CloudFront bereitgestellt werden, anzupassen. Sie können Node.js-Funktionen in einer Region, US-East-1 (Nord-Virginia), erstellen und dann weltweit an AWS-Standorten ausführen, die näher beim Betrachter liegen, ohne dass Server dafür bereitgestellt oder verwaltet werden müssen. Lambda@Edge skaliert automatisch zwischen einigen wenigen Anforderungen pro Tag und ein paar Tausend Anforderungen pro Sekunde. Die Bearbeitung von Anfragen an AWS-Standorten, die näher beim Betrachter liegen, und nicht an Ursprungs-Server, reduziert die Latenz und verbessert die Benutzererfahrung beträchtlich.

Wenn Sie eine CloudFront-Verteilung mit einer Lambda@Edge-Funktion verknüpfen, fängt CloudFront die Anfragen und Antworten an CloudFront-Edge-Standorten ab. Sie können die Lambda-Funktionen ausführen, wenn die folgenden CloudFront-Ereignisse eintreten:

  • Wenn CloudFront eine Anforderung von einem Betrachter erhält (Betrachteranfrage)

  • Bevor CloudFront eine Anforderung an den Ursprung weiterleitet (Ursprungsanfrage)

  • Wenn CloudFront erhält eine Antwort vom Ursprung erhält (Ursprungsantwort)

  • Bevor der CloudFront die Antwort an den Betrachter zurückgibt (Betrachterantwort)

Es gibt viele Verwendungsmöglichkeiten für die Verarbeitung mit Lambda@Edge. Beispiel:

  • Eine Lambda-Funktion kann Cookies prüfen und URLs so transformieren, dass den Benutzern verschiedene Versionen einer Website angezeigt werden, was für A/B-Tests eingesetzt werden kann.

  • CloudFront kann Betrachtern auf der Grundlage des jeweils verwendeten Geräts durch Prüfen des User-Agent-Headers, der Informationen über die Geräte enthält, unterschiedliche Objekte zurückgeben. Beispielsweise kann CloudFront auf der Grundlage der Bildschirmgröße des Geräts verschiedene Bilder anzeigen. Die Funktion könnte ebenso auch den Wert des Referer-Headers heranziehen und CloudFront beispielsweise anweisen, an Bots Bilder mit der niedrigsten Auflösung zurückzugeben.

  • Sie können Cookies auch auf andere Kriterien überprüfen. Wenn Sie beispielsweise auf einer Einzelhandels-Website, über die Bekleidung vertrieben wird, Cookies verwenden, um anzugeben, welche Farbe ein Benutzer für eine Jacke gewählt hat, kann eine Lambda-Funktion die Anfrage so ändern, dass CloudFront das Bild der Jacke in der ausgewählten Farbe zurückgibt.

  • Eine Lambda-Funktion kann HTTP-Antworten generieren, wenn CloudFront-Betrachter- oder -Ursprungsanfrageereignisse eintreten.

  • Eine Funktion kann Header oder Autorisierungstoken analysieren und einen Header einfügen, um den Zugriff auf Ihre Inhalte zu kontrollieren, bevor CloudFront die Anfrage an Ihren Ursprung weiterleitet.

  • Eine Lambda-Funktion kann auch Netzwerkaufrufe an externe Ressourcen durchführen, um die Anmeldeinformationen von Benutzern zu bestätigen oder weitere Inhalte zum Anpassen einer Antwort abzurufen.

Beispiel-Code und Beispiele finden Sie unter Beispielfunktionen für Lambda@Edge.