

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 alle Edge-Funktionen
<a name="edge-function-restrictions-all"></a>

Die folgenden Einschränkungen gelten für alle Edge-Funktionen, sowohl für CloudFront Functions als auch für Lambda @Edge.

**Topics**
+ [AWS-Konto Besitz](#function-restrictions-account-ownership)
+ [CloudFront Funktionen mit Lambda @Edge kombinieren](#function-restrictions-combining-functions)
+ [HTTP-Statuscodes](#function-restrictions-status-codes)
+ [HTTP-Header](#function-restrictions-headers)
+ [Abfragezeichenfolgen](#function-restrictions-query-strings)
+ [URI](#function-restrictions-uri)
+ [URI-, Abfragezeichenfolge- und Header-Kodierung](#function-restrictions-encoding)
+ [Microsoft Smooth Streaming](#function-restrictions-microsoft-smooth-streaming)
+ [Tagging](#function-restrictions-tagging)

## AWS-Konto Besitz
<a name="function-restrictions-account-ownership"></a>

Um einer CloudFront Verteilung eine Randfunktion zuzuordnen, müssen die Funktion und die Verteilung derselben Person gehören AWS-Konto.

## CloudFront Funktionen mit Lambda @Edge kombinieren
<a name="function-restrictions-combining-functions"></a>

Für jedes Cache-Verhalten gelten die folgenden Einschränkungen:
+ Jeder Ereignistyp (Viewer-Anforderung, Ursprungsanforderung, Ursprungsantwort und Viewer-Antwort) kann nur eine Edge-Funktionszuordnung aufweisen.
+ Sie können CloudFront Functions und Lambda @Edge nicht in Viewer-Ereignissen (Viewer-Anfrage und Viewer-Antwort) kombinieren.

Alle anderen Kombinationen von Edge-Funktionen sind erlaubt. In der folgenden Tabelle werden die erlaubten Kombinationen erläutert.


<table>
<tbody>
  <tr><td rowspan="2" colspan="2"></td><td colspan="2"><b>CloudFront Funktionen</b></td></tr>
  <tr><td><b>Viewer-Anforderung</b></td><td><b>Viewer-Antwort</b></td></tr>
  <tr><td rowspan="4"><b>Lambda@Edge</b></td><td><b>Viewer-Anforderung</b></td><td>Nicht zulässig</td><td>Nicht zulässig</td></tr>
  <tr><td><b>Ursprungsanfrage</b></td><td>Zulässig</td><td>Zulässig</td></tr>
  <tr><td><b>Ursprungsantwort</b></td><td>Zulässig</td><td>Zulässig</td></tr>
  <tr><td><b>Viewer-Antwort</b></td><td>Nicht zulässig</td><td>Nicht zulässig</td></tr>
</tbody>
</table>


## HTTP-Statuscodes
<a name="function-restrictions-status-codes"></a>

CloudFront ruft keine Edge-Funktionen für Zuschauer-Antwortereignisse auf, wenn der Ursprung den HTTP-Statuscode 400 oder höher zurückgibt.

Lambda@Edge-Funktionen für Ursprungsantwortereignisse werden für *alle* Ursprungsantworten aufgerufen, auch wenn der Ursprung einen HTTP-Statuscode 400 oder höher zurückgibt. Weitere Informationen finden Sie unter [Aktualisieren von HTTP-Antworten in Ursprungsantwortauslösern](lambda-generating-http-responses.md#lambda-updating-http-responses).

## HTTP-Header
<a name="function-restrictions-headers"></a>

Bestimmte HTTP-Header sind nicht zulässig, was bedeutet, dass sie nicht für Edge-Funktionen zugänglich sind und die Funktionen sie nicht hinzufügen können. Andere Header sind schreibgeschützt, was bedeutet, dass die Funktionen sie zwar lesen, aber nicht hinzufügen, ändern oder löschen können.

**Topics**
+ [Unzulässige Header](#function-restrictions-disallowed-headers)
+ [Read-only Header](#function-restrictions-read-only-headers)

### Unzulässige Header
<a name="function-restrictions-disallowed-headers"></a>

Die folgenden HTTP-Header sind nicht für Edge-Funktionen verfügbar und die Funktionen können sie nicht hinzufügen. Wenn Ihre Funktion einen dieser Header hinzufügt, schlägt die CloudFront Überprüfung fehl und CloudFront gibt den HTTP-Statuscode 502 (Bad Gateway) an den Viewer zurück.
+ `Connection` 
+ `Expect`
+ `Keep-Alive`
+ `Proxy-Authenticate`
+ `Proxy-Authorization`
+ `Proxy-Connection`
+ `Trailer`
+ `Upgrade`
+ `X-Accel-Buffering`
+ `X-Accel-Charset`
+ `X-Accel-Limit-Rate`
+ `X-Accel-Redirect`
+ `X-Amz-Cf-*`
+ `X-Amzn-Auth`
+ `X-Amzn-Cf-Billing`
+ `X-Amzn-Cf-Id`
+ `X-Amzn-Cf-Xff`
+ `X-Amzn-Errortype`
+ `X-Amzn-Fle-Profile`
+ `X-Amzn-Header-Count`
+ `X-Amzn-Header-Order`
+ `X-Amzn-Lambda-Integration-Tag`
+ `X-Amzn-RequestId`
+ `X-Cache`
+ `X-Edge-*`
+ `X-Forwarded-Proto`
+ `X-Real-IP`
+ `CloudFront-Viewer-Cert-PEM`
+ `Client-Cert`
+ `Client-Cert-Chain`

### Read-only Header
<a name="function-restrictions-read-only-headers"></a>

Die folgenden Header sind schreibgeschützt. Ihre Funktion kann sie lesen und als Eingabe für die Funktionslogik verwenden, doch sie kann die Werte nicht ändern. Wenn Ihre Funktion einen schreibgeschützten Header hinzufügt oder bearbeitet, schlägt die CloudFront Überprüfung der Anforderung fehl und CloudFront gibt den HTTP-Statuscode 502 (Bad Gateway) an den Viewer zurück.

#### Read-only Header in Viewer-Anforderungsereignissen
<a name="function-restrictions-read-only-headers-viewer-request"></a>

Die folgenden Header sind bei Viewer-Anforderungsereignissen schreibgeschützt.
+ `CDN-Loop`
+ `Content-Length`
+ `Host`
+ `Transfer-Encoding`
+ `Via`

#### Read-only Header in Origin-Anforderungsereignissen (nur Lambda @Edge)
<a name="function-restrictions-read-only-headers-origin-request"></a>

Die folgenden Header sind in Ursprungsanforderungsereignissen schreibgeschützt, die nur in Lambda@Edge vorhanden sind.
+ `Accept-Encoding`
+ `CDN-Loop`
+ `Content-Length`
+ `If-Modified-Since`
+ `If-None-Match`
+ `If-Range`
+ `If-Unmodified-Since`
+ `Transfer-Encoding`
+ `Via`

#### Read-only Header in Origin-Antwortereignissen (nur Lambda @Edge)
<a name="function-restrictions-read-only-headers-origin-response"></a>

Die folgenden Header sind in Ursprungsantwortereignissen schreibgeschützt, die nur in Lambda@Edge vorhanden sind.
+ `Transfer-Encoding`
+ `Via`

#### Read-only Header in Antwortereignissen des Betrachters
<a name="function-restrictions-read-only-headers-viewer-response"></a>

Die folgenden Header sind in Viewer-Antwortereignissen sowohl für CloudFront Functions als auch für Lambda @Edge schreibgeschützt.
+ `Warning`
+ `Via`

Die folgenden Header sind bei Viewer-Antwortereignissen für Lambda@Edge schreibgeschützt.
+ `Content-Length`
+ `Content-Encoding`
+ `Transfer-Encoding`

## Abfragezeichenfolgen
<a name="function-restrictions-query-strings"></a>

Die folgenden Einschränkungen gelten für Funktionen, die eine Abfragezeichenfolge in einem Anforderungs-URI lesen, aktualisieren oder erstellen.
+ (Nur Lambda@Edge) Um auf die Abfragezeichenfolge in einer Ursprungsanforderung oder einer Ursprungsantwortfunktion zuzugreifen, muss die Cache-Richtlinie oder die Ursprungsanforderungsrichtlinie auf **Alle** auf **Abfragezeichenfolgen** gesetzt werden.
+ Eine Funktion kann eine Abfragezeichenfolge für Viewer-Anforderungs- und Ursprungsanforderungsereignisse erstellen oder aktualisieren (Ursprungsanforderungsereignisse existieren nur in Lambda@Edge).
+ Eine Funktion kann für Ursprungsantwort- und Viewer-Antwortereignisse eine Abfragezeichenfolge lesen, aber nicht erstellen oder aktualisieren (Ursprungsantwortereignisse existieren nur in Lambda@Edge).
+ Wenn eine Funktion eine Abfragezeichenfolge erstellt oder aktualisiert, gelten folgende Einschränkungen:
  + Die Abfragezeichenfolge darf keine Leerzeichen, Steuerzeichen oder die Fragment-ID (`#`) enthalten.
  + Die Gesamtgröße der URI und der Abfragezeichenfolge darf nicht mehr als 8.192 Zeichen umfassen.
  + Wir empfehlen die Verwendung der Prozentkodierung für die URI und die Abfragezeichenfolge. Weitere Informationen finden Sie unter [URI-, Abfragezeichenfolge- und Header-Kodierung](#function-restrictions-encoding).

## URI
<a name="function-restrictions-uri"></a>

Wenn eine Funktion Änderungen an dem URI für eine Anforderung durchführt, ändert dies weder das Cache-Verhalten für die Anforderung noch den Ursprung, an den Anforderung weitergeleitet wird.

Die Gesamtgröße der URI und der Abfragezeichenfolge darf nicht mehr als 8.192 Zeichen umfassen.

## URI-, Abfragezeichenfolge- und Header-Kodierung
<a name="function-restrictions-encoding"></a>

Die Werte für den URI, die Abfragezeichenfolge und die Header, die an Edge-Funktionen übergeben werden, sind codiert. UTF-8 Ihre Funktion sollte die von ihr zurückgegebene URI, die Abfragezeichenfolge und die Header-Werte UTF-8 kodieren. Die prozentuale Kodierung ist mit der UTF-8 Kodierung kompatibel.

In der folgenden Liste wird erklärt, wie CloudFront mit der Kodierung von URI, Abfragezeichenfolge und Headern umgegangen wird:
+ Wenn Werte in der Anfrage UTF-8 codiert sind, CloudFront leitet die Werte an Ihre Funktion weiter, ohne sie zu ändern.
+ Wenn Werte in der Anfrage [ISO-8859-1codiert](https://en.wikipedia.org/wiki/ISO/IEC_8859-1) sind, CloudFront konvertiert die Werte in eine UTF-8 Kodierung, bevor sie an Ihre Funktion weitergeleitet werden.
+ Wenn Werte in der Anfrage mit einer anderen Zeichenkodierung codiert sind, CloudFront wird davon ausgegangen, dass sie ISO-8859-1 codiert sind, und versucht, von zu zu konvertieren. ISO-8859-1 UTF-8
**Wichtig**  
Die konvertierten Zeichen sind möglicherweise eine falsche Interpretation der Werte in der ursprünglichen Anfrage. Dies kann dazu führen, dass Ihre Funktion oder Ihr Ursprung ein unbeabsichtigtes Ergebnis produzieren.

Die Werte für den URI, die Abfragezeichenfolge und die Header, die an Ihren Ursprung CloudFront weitergeleitet werden, hängen davon ab, ob eine Funktion die Werte ändert:
+ Wenn eine Funktion den URI, die Abfragezeichenfolge oder den Header nicht ändert, CloudFront leitet sie die Werte, die sie in der Anfrage erhalten hat, an Ihren Ursprung weiter.
+ Wenn eine Funktion den URI, die Abfragezeichenfolge oder den Header ändert, CloudFront leitet sie die UTF-8 codierten Werte weiter.

## Microsoft Smooth Streaming
<a name="function-restrictions-microsoft-smooth-streaming"></a>

Sie können Edge-Funktionen nicht mit einer CloudFront Distribution verwenden, die Sie zum Streamen von Mediendateien verwenden, die Sie in das Microsoft Smooth Streaming-Format transkodiert haben.

## Tagging
<a name="function-restrictions-tagging"></a>

Sie können keine Tags zu Edge-Funktionen hinzufügen. Weitere Informationen zum Taggen finden Sie unter CloudFront. [Kennzeichnen Sie eine Ressource CloudFront](tagging.md)