

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.

# Hinzufügen von Auslösern für eine Lambda@Edge-Funktion
<a name="lambda-edge-add-triggers"></a>

Ein Lambda @Edge -Trigger ist eine Kombination aus einer CloudFront Verteilung, einem Cache-Verhalten und einem Ereignis, das die Ausführung einer Funktion bewirkt. Sie können beispielsweise einen Trigger erstellen, der bewirkt, dass die Funktion ausgeführt wird, wenn von einem Viewer eine Anfrage für ein bestimmtes Cache-Verhalten CloudFront empfangen wird, das Sie für Ihre Distribution eingerichtet haben. Sie können einen oder mehrere CloudFront Trigger angeben. 

**Tipp**  
Wenn Sie eine CloudFront Verteilung erstellen, geben Sie Einstellungen an, die festlegen, CloudFront wie auf unterschiedliche Anfragen reagiert werden soll. Die Standardeinstellungen werden als *Standard-Cacheverhalten* für die Distribution bezeichnet. Sie können zusätzliche Cache-Verhaltensweisen einrichten, die definieren, wie unter bestimmten Umständen CloudFront reagiert wird, z. B. wenn eine Anfrage für einen bestimmten Dateityp empfangen wird. Weitere Informationen finden Sie unter [Einstellungen für das Cache-Verhalten](DownloadDistValuesCacheBehavior.md).

Wenn Sie eine Lambda-Funktion neu erstellen, können Sie nur *einen* Auslöser angeben. Sie können derselben Funktion später weitere Trigger hinzufügen, indem Sie die Lambda-Konsole verwenden oder die Verteilung in der CloudFront Konsole bearbeiten.
+ Die Lambda-Konsole funktioniert gut, wenn Sie einer Funktion für dieselbe CloudFront Distribution weitere Trigger hinzufügen möchten.
+ Die CloudFront Konsole kann besser sein, wenn Sie Trigger für mehrere Distributionen hinzufügen möchten, da es einfacher ist, die Distribution zu finden, die Sie aktualisieren möchten. Sie können auch andere CloudFront Einstellungen gleichzeitig aktualisieren.

**Topics**
+ [CloudFront Ereignisse, die eine Lambda @Edge -Funktion auslösen können](lambda-cloudfront-trigger-events.md)
+ [Auswählen des Ereignisses zur Auslösung der Funktion](lambda-how-to-choose-event.md)
+ [Hinzufügen von Auslösern zu einer Lambda@Edge-Funktion](lambda-edge-add-triggers-console.md)

# CloudFront Ereignisse, die eine Lambda @Edge -Funktion auslösen können
<a name="lambda-cloudfront-trigger-events"></a>

Für jedes Cache-Verhalten in einer CloudFront Amazon-Distribution können Sie bis zu vier Trigger (Assoziationen) hinzufügen, die bewirken, dass eine Lambda-Funktion ausgeführt wird, wenn bestimmte CloudFront Ereignisse eintreten. CloudFront Trigger können auf einem von vier CloudFront Ereignissen basieren, wie in der folgenden Abbildung dargestellt.

![\[Konzeptgrafik, die zeigt, wie CloudFront Triggerereignisse für Lambda-Funktionen in integriert CloudFront werden.\]](http://docs.aws.amazon.com/de_de/AmazonCloudFront/latest/DeveloperGuide/images/cloudfront-events-that-trigger-lambda-functions.png)


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

**Viewer-Anforderung**  
Die Funktion wird ausgeführt, wenn sie eine Anfrage von einem Viewer CloudFront erhält, bevor sie überprüft, ob sich das angeforderte Objekt im CloudFront Cache befindet.  
Die Funktion wird in den folgenden Fällen nicht ausgeführt:  
+ beim Abrufen einer benutzerdefinierten Fehlerseite
+ Wenn eine HTTP-Anfrage CloudFront automatisch an HTTPS umgeleitet wird (wenn der Wert von **Redirect HTTP to HTTPS [Viewer-Protokollrichtlinien](DownloadDistValuesCacheBehavior.md#DownloadDistValuesViewerProtocolPolicy)** lautet).

**Ursprungsanfrage**  
Die Funktion wird *nur* ausgeführt, wenn eine Anfrage an Ihren Ursprung CloudFront weitergeleitet wird. Wenn sich das angeforderte Objekt im CloudFront Cache befindet, wird die Funktion nicht ausgeführt.

**Ursprungsantwort**  
Die Funktion wird ausgeführt, nachdem CloudFront sie eine Antwort vom Ursprung erhalten hat und bevor das Objekt in der Antwort zwischengespeichert wird. 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 Cache befindet und nicht abgelaufen ist.
+ Wenn die Antwort von einer Funktion generiert wird, die von einem Ursprungs-Anforderungsereignis ausgelöst wurde.

**Viewer-Antwort**  
Diese Funktion wird ausgeführt, bevor die angeforderte Datei an den Viewer zurückgegeben wird. Beachten Sie, dass die Funktion unabhängig davon ausgeführt wird, ob sich die Datei bereits im CloudFront Cache befindet.  
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 eine HTTP-Anfrage CloudFront automatisch an HTTPS umgeleitet wird (wenn der Wert von „**HTTP zu HTTPS umleiten**“ [Viewer-Protokollrichtlinien](DownloadDistValuesCacheBehavior.md#DownloadDistValuesViewerProtocolPolicy) lautet).

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 sie* fortgesetzt CloudFront werden kann.   
Wenn beispielsweise eine Lambda-Funktion durch ein CloudFront Viewer-Anforderungsereignis ausgelöst CloudFront wird, gibt sie keine Antwort an den Betrachter zurück und leitet die Anfrage nicht an den Ursprung weiter, bis die Lambda-Funktion vollständig ausgeführt wurde.   
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.

# Auswählen des Ereignisses zur Auslösung der Funktion
<a name="lambda-how-to-choose-event"></a>

Wenn Sie entscheiden, welches CloudFront Ereignis Sie verwenden möchten, um eine Lambda-Funktion auszulösen, sollten Sie Folgendes berücksichtigen:

**Ich CloudFront möchte Objekte zwischenspeichern, die durch eine Lambda-Funktion geändert wurden**  
Um ein Objekt zwischenzuspeichern, das durch eine Lambda-Funktion geändert wurde, CloudFront sodass es bei der nächsten Anforderung vom Edge-Standort aus bedient werden kann, verwenden Sie die *Origin-Anfrage oder das *Origin-Response-Ereignis**.   
Dadurch verringert sich die Verarbeitungslast für den Ursprung, die Latenz für nachfolgende Anforderungen wird verringert und die Kosten für den Aufruf von Lambda@Edge für nachfolgende Anforderungen reduziert.  
Wenn Sie beispielsweise Header für Objekte hinzufügen, entfernen oder ändern möchten, die vom Ursprung zurückgegeben werden, und Sie das Ergebnis zwischenspeichern CloudFront möchten, verwenden Sie das Origin-Response-Ereignis.

**Die Funktion soll für jede Anforderung ausgeführt werden**  
Um die Funktion für jede Anforderung auszuführen, die für die Verteilung CloudFront eingeht, verwenden Sie die *Viewer-Anforderung oder die *Viewer-Antwortereignisse**.   
Origin-Request- und Origin-Response-Ereignisse treten nur auf, wenn ein angefordertes Objekt nicht an einem Edge-Standort zwischengespeichert ist und eine Anfrage an den Ursprung CloudFront weiterleitet.

**Die Funktion soll den Cache-Schlüssel ändern**  
Um einen Wert zu ändern, den Sie als Grundlage für das Zwischenspeichern verwenden, wählen Sie das Ereignis *Viewer-Anforderung*.   
Wenn beispielsweise eine Funktion eine URL so ändert, dass Abkürzungen für die Sprachversionen in den Pfad eingebunden werden (zum Beispiel, weil der Benutzer seine Sprache aus einer Dropdown-Liste ausgewählt hat), verwenden Sie das Viewer-Anfrageereignis:  
+ **URL in der Viewer-Anfrage** — index.html https://example.com/en/
+ **URL, wenn die Anfrage von einer IP-Adresse in Deutschland kommt** — https://example.com/de/ index.html
Sie können Viewer-Anfrageereignisse auch verwenden, wenn die Zwischenspeicherung auf der Basis von Cookies oder Anfrageereignissen erfolgt.  
Wenn die Funktion Cookies oder Header ändert, konfigurieren Sie CloudFront sie so, dass der entsprechende Teil der Anfrage an den Ursprung weitergeleitet wird. Weitere Informationen finden Sie unter den folgenden Themen:  
+ [Zwischenspeichern von Inhalten auf der Grundlage von Cookies](Cookies.md)
+ [Zwischenspeichern von Inhalten auf der Grundlage von Anforderungsheadern](header-caching.md)

**Die Funktion wirkt sich auf die Antwort vom Ursprung aus**  
Um die Anforderung so zu verändern, dass sich die Antwort vom Ursprung ändert, verwenden Sie das Ereignis *Ursprungsanforderung*.   
In der Regel werden die meisten Ereignisse mit Zuschaueranfragen nicht an den Absender weitergeleitet. CloudFront reagiert auf eine Anfrage mit einem Objekt, das sich bereits im Edge-Cache befindet. Wenn die Funktion die Anfrage auf der Grundlage eines ursprünglichen Anforderungsereignisses ändert, CloudFront speichert sie die Antwort auf die geänderte ursprüngliche Anfrage im Cache.

# Hinzufügen von Auslösern zu einer Lambda@Edge-Funktion
<a name="lambda-edge-add-triggers-console"></a>

Sie können die AWS Lambda Konsole oder die CloudFront Amazon-Konsole verwenden, um Ihrer Lambda @Edge -Funktion einen Trigger hinzuzufügen.

**Wichtig**  
Sie können Auslöser nur für nummerierte Versionen Ihrer Funktion erstellen (nicht für **\$1LATEST**).

------
#### [ Lambda console ]<a name="lambda-edge-add-triggers-procedure"></a>

**Um Trigger für CloudFront Ereignisse zu einer Lambda @Edge -Funktion hinzuzufügen**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Wählen Sie oben auf der Seite in der Liste „Region“ die Option **US Ost (Nord-Virginia)** aus.

1. Wählen Sie auf der Seite **Functions** den Namen der Funktion, für die Sie Auslöser hinzufügen möchten.

1. Wählen Sie auf der Seite **Funktionsübersicht** die Registerkarte **Versionen** aus.

1. Wählen Sie die Version, der Sie Auslöser hinzufügen möchten.

   Nach der Wahl einer Version ändert sich der Name der Schaltfläche in **Version: \$1LATEST** oder **Version:** *Versionsnummer*.

1. Wählen Sie die Registerkarte **Triggers**.

1. Wählen Sie **Add trigger**.

1. Wählen Sie für die **Trigger-Konfiguration** die Option **Quelle auswählen****cloudfront**, geben Sie die Eingabetaste ein und wählen Sie dann **CloudFront**.
**Anmerkung**  
Wenn Sie bereits einen oder mehrere Auslöser erstellt haben, CloudFront ist dies der Standarddienst.

1. Geben Sie die folgenden Werte an, um anzugeben, wann die Lambda-Funktion ausgeführt werden soll.

   1. **Distribution** – Wählen Sie die Distribution aus, der Sie den Auslöser hinzufügen möchten.

   1. **Cacheverhalten** – Wählen Sie das Cacheverhalten, das die Objekte angibt, für die Sie die Funktion ausführen möchten.
**Anmerkung**  
Wenn Sie `*` für das Zwischenspeicher-Verhalten angeben, stellt die Lambda-Funktion das Standard-Zwischenspeicher-Verhalten bereit.

   1. **CloudFront Ereignis** — Wählen Sie das CloudFront Ereignis aus, das die Ausführung der Funktion veranlasst.

   1. **Text einschließen** – Aktivieren Sie dieses Kontrollkästchen, wenn Sie auf den Anforderungstext in Ihrer Funktion zugreifen möchten. 

   1. **Bereitstellung in Lambda@Edge bestätigen** – Aktivieren Sie dieses Kontrollkästchen, sodass AWS Lambda die Funktion in AWS-Regionen weltweit repliziert.

1. Wählen Sie **Hinzufügen** aus.

   Die Funktion beginnt mit der Verarbeitung von Anfragen für die angegebenen CloudFront Ereignisse, wenn die aktualisierte CloudFront Distribution bereitgestellt wird. Um zu ermitteln, ob eine Verteilung bereitgestellt ist, wählen Sie im Navigationsbereich die Option **Distributions**. Wenn eine Distribution bereitgestellt ist, ändert sich der Wert in der Spalte **Status** für die Distribution von **Wird bereitgestellt** in das Datum und die Uhrzeit der Bereitstellung.

------
#### [ CloudFront console ]<a name="lambda-create-functions-add-triggers-cloudfront-console-procedure"></a>

**Um Trigger für CloudFront Ereignisse zu einer Lambda @Edge -Funktion hinzuzufügen**

1. Rufen Sie den ARN der Lambda-Funktion ab, der Sie Auslöser hinzufügen möchten:

   1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

   1. Wählen Sie in der Liste der Regionen oben auf der Seite die Option **USA Ost (Nord-Virginia)**.

   1. Wählen Sie in der Liste der Funktionen den Namen der Funktion, der Sie Auslöser hinzufügen möchten.

   1. Wählen Sie auf der Seite **Funktionsübersicht** die Registerkarte **Versionen** und dann die nummerierte Version aus, der Sie Auslöser hinzufügen möchten.

   1. Wählen Sie die Schaltfläche **ARN kopieren**, um den ARN in Ihre Zwischenablage zu kopieren. Der ARN für die Lambda-Funktion sieht wie folgt aus:

      `arn:aws:lambda:us-east-1:123456789012:function:TestFunction:2`

      Die Nummer am Ende (**2** in diesem Beispiel) ist die Versionsnummer der Funktion.

1. Öffnen Sie die CloudFront Konsole unter[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Wählen Sie in der Liste der Verteilungen die ID der Verteilung aus, der Sie Auslöser hinzufügen möchten.

1. Wählen Sie die Registerkarte **Behaviors** aus.

1. Wählen Sie das Cacheverhalten, dem Sie Auslöser hinzufügen möchten, und dann **Bearbeiten** aus.

1. Wählen Sie unter **Funktionszuordnungen** in der Liste **Funktionstyp** die Option **Lambda@Edge** aus, wenn die Funktion bei Viewer-Anforderungen, Viewer-Antworten, Ursprungsanforderungen oder Ursprungsantworten ausgeführt werden soll. 

   Weitere Informationen finden Sie unter [Auswählen des Ereignisses zur Auslösung der Funktion](lambda-how-to-choose-event.md).

1. Fügen Sie in das Textfeld **Funktions-ARN/Name** den ARN der Lambda-Funktion ein, die ausgeführt werden soll, wenn das ausgewählte Ereignis eintritt. Dies ist der Wert, den Sie aus der Lambda-Konsole kopiert haben.

1. Wählen Sie **Text einschließen** aus, wenn Sie auf den Anforderungstext in Ihrer Funktion zugreifen möchten.

   Wenn Sie nur den Anforderungstext ersetzen möchten, müssen Sie diese Option nicht auswählen.

1. Wenn dieselbe Funktion für mehrere Ereignistypen ausgeführt werden soll, wiederholen Sie die Schritte 6 und 7.

1. Wählen Sie **Änderungen speichern ** aus.

1. Um Trigger zu weiteren Cache-Verhaltensweisen für diese Verteilung hinzuzufügen, wiederholen Sie die Schritte 5 bis 10.

   Die Funktion beginnt mit der Verarbeitung von Anfragen für die angegebenen CloudFront Ereignisse, wenn die aktualisierte CloudFront Distribution bereitgestellt wird. Um zu ermitteln, ob eine Verteilung bereitgestellt ist, wählen Sie im Navigationsbereich die Option **Distributions**. Wenn eine Distribution bereitgestellt ist, ändert sich der Wert in der Spalte **Status** für die Distribution von **Wird bereitgestellt** in das Datum und die Uhrzeit der Bereitstellung.

------