Anpassen am Edge mit Lambda@Edge - Amazon CloudFront

Anpassen 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- oder Python-Funktionen in der Region USA Ost (Nord-Virginia) erstellen und dann weltweit an AWS-Standorten ausführen, die näher beim Viewer 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 Viewer liegen, und nicht an Ursprungs-Server, reduziert die Latenz und verbessert die Benutzererfahrung beträchtlich.

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

  • Wenn CloudFront eine Anfrage von einem Viewer erhält (Vieweranfrage)

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

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

  • Bevor CloudFront die Antwort an den Viewer zurückgibt (Viewerantwort)

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 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 an Viewer zurückgeben. Beispielsweise kann CloudFront auf der Grundlage der Bildschirmgröße des Geräts verschiedene Images anzeigen. Die Funktion könnte ebenso auch den Wert des Referer-Headers heranziehen und CloudFront beispielsweise anweisen, an Bots Images 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 Image der Jacke in der ausgewählten Farbe zurückgibt.

  • Eine Lambda-Funktion kann HTTP-Antworten generieren, wenn CloudFront-Viewer- 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.