CloudFront-Ereignisse, die eine Lambda-Funktion auslösen können - Amazon CloudFront

CloudFront-Ereignisse, die eine Lambda-Funktion auslösen können

Sie können jedem Zwischenspeicher-Verhalten in einer CloudFront-Verteilung bis zu vier Auslöser (Zuordnungen) hinzufügen, die eine Lambda-Funktion ausführen, wenn ein bestimmtes CloudFront-Ereignis eintritt. CloudFront-Auslöser können auf einem von vier CloudFront-Ereignissen basieren, wie in der folgenden Abbildung dargestellt.


					Die konzeptionelle Grafik zeigt CloudFront-Auslöserereignisse für Lambda-Funktionen, die in CloudFront integriert werden können.

Die folgenden CloudFront-Ereignisse können verwendet werden, um Lambda@Edge-Funktionen auszulösen:

Vieweranfrage

Die Funktion wird ausgeführt, wenn CloudFront eine Anforderung von einem Viewer erhält. Sie prüft zunächst, ob sich das angeforderte Objekt im CloudFront-Zwischenspeicher befindet.

Ursprungsanfrage

Die Funktion wird nur ausgeführt, wenn CloudFront eine Anforderung an Ihren Ursprung weiterleitet. Wenn sich das angeforderte Objekt in dem CloudFront-Zwischenspeicher befindet, wird die Funktion gar nicht erst ausgeführt.

Ursprungsantwort

Die Funktion wird ausgeführt, nachdem CloudFront eine Antwort vom Ursprung erhalten hat und bevor es das Objekt in der Antwort zwischenspeichert. Beachten Sie, dass die Funktion auch dann ausgeführt wird, wenn ein Fehler vom Ursprung zurückgegeben wird.

Die Funktion wird in den folgenden Fällen nicht ausgeführt:

  • Wenn sich die angeforderte Datei im CloudFront-Zwischenspeicher befindet und nicht abgelaufen ist.

  • Wenn die Antwort von einer Funktion generiert wird, die von einem Ursprungs-Anforderungsereignis ausgelöst wurde.

Viewerantwort

Diese Funktion wird ausgeführt, bevor die angeforderte Datei an den Viewer zurückgegeben wird. Beachten Sie, dass die Funktion unabhängig davon, ob sich die Datei bereits im CloudFront-Zwischenspeicher befindet, ausgeführt wird.

Die Funktion wird in den folgenden Fällen nicht ausgeführt:

  • Wenn der Ursprung den HTTP-Statuscode „400“ oder höher zurückgibt.

  • Wenn eine benutzerdefinierte Fehlerseite zurückgesendet wird.

  • Wenn die Antwort von einer Funktion generiert wird, die von einem Viewer-Anforderungsereignis ausgelöst wurde.

  • Wenn CloudFront HTTP-Anforderungen automatisch an HTTPS umleitet (wenn der Wert von Betrachter-Protokollrichtlinien Redirect HTTP to HTTPS (HTTP zu HTTPS umleiten) ist).

Wenn Sie einem Cache-Verhalten mehrere Auslöser hinzufügen, können diese jeweils dieselbe oder verschiedene Funktionen für jeden Auslöser ausführen. Sie können Funktionen auch in mehreren Verteilungen zuweisen.

Anmerkung

Wenn ein CloudFront-Ereignis die Ausführung einer Lambda-Funktion auslöst, muss die Funktion beendet werden, bevor CloudFront fortgesetzt werden kann. Wird beispielsweise eine Lambda-Funktion durch ein Anfrageereignis eines CloudFront-Viewers ausgelöst, sendet CloudFront erst dann eine Antwort an den Viewer bzw. leitet CloudFront erst dann die Anfrage an den Ursprung weiter, wenn die Lambda-Funktion beendet ist. Dies bedeutet, dass jede Anforderung, die eine Lambda-Funktion auslöst, die Latenz für die Anforderung erhöht, daher sollte die Funktion so schnell wie möglich arbeiten.