

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.

# Erstellen von Funktionen
<a name="create-function"></a>

Sie erstellen eine Funktion in zwei Phasen: 

1. Erstellen Sie den Funktionscode als JavaScript. Sie können das Standardbeispiel von der CloudFront Konsole aus verwenden oder ein eigenes schreiben. Weitere Informationen finden Sie unter den folgenden Themen:
   + [Schreiben von Funktionscode](writing-function-code.md)
   + [CloudFront Funktionen, Ereignisstruktur](functions-event-structure.md)
   + [CloudFront Funktionen, Beispiele für CloudFront](service_code_examples_cloudfront_functions_examples.md)

1. Verwenden Sie CloudFront es, um die Funktion zu erstellen und Ihren Code einzufügen. Der Code ist innerhalb der Funktion vorhanden (nicht als Referenz).

------
#### [ Console ]

**Eine Funktion erstellen**

1. Melden Sie sich bei der CloudFront Konsole unter an [https://console.aws.amazon.com/cloudfront/v4/home#/functions](https://console.aws.amazon.com/cloudfront/v4/home#/functions) und wählen Sie die Seite **Funktionen** aus.

1. Wählen Sie **Funktion erstellen**.

1. Geben Sie einen Funktionsnamen ein, der innerhalb von eindeutig ist AWS-Konto, wählen Sie die JavaScript Version aus und klicken Sie dann auf **Weiter**. Die Seite mit den Details der neuen Funktion wird angezeigt.
**Anmerkung**  
Um [Schlüssel-Wert-Paare](kvs-with-functions.md) in der Funktion zu verwenden, müssen Sie JavaScript Runtime 2.0 wählen.  
Wenn beim Erstellen einer Funktion mit Tags ein Fehler `TaggingConflict` (HTTP 409) auftritt, warten Sie einige Minuten und versuchen Sie es erneut, oder erstellen Sie die Funktion zunächst ohne Tags und fügen Sie sie anschließend hinzu.

1. Wählen Sie im Abschnitt **Funktionscode** die Registerkarte **Erstellen** aus und geben Sie Ihren Funktionscode ein. Der auf der Registerkarte **Erstellen** angezeigte Beispielcode veranschaulicht die grundlegende Syntax für den Funktionscode.

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

1. Wenn der Funktionscode Schlüssel-Wert-Paare verwendet, müssen Sie einen Schlüsselwertspeicher zuordnen. 

   Sie können den Schlüsselwertspeicher beim Erstellen der Funktion zuordnen. Sie können ihn auch später zuordnen, indem Sie [die Funktion aktualisieren](update-function.md). 

   Gehen Sie wie folgt vor, um jetzt einen Schlüsselwertspeicher zuzuordnen:
   + Gehen Sie zum KeyValueStore Bereich **Assoziieren** und wählen Sie Vorhandenes **zuordnen** aus. KeyValueStore
   + **Wählen Sie den Schlüsselwertspeicher aus, der die Schlüssel-Wert-Paare in der Funktion enthält, und wählen Sie dann Assoziieren aus. KeyValueStore**

   CloudFront ordnet den Speicher sofort der Funktion zu. Sie müssen die Funktion nicht speichern.

------
#### [ CLI ]

Wenn Sie die CLI verwenden, erstellen Sie normalerweise zuerst den Funktionscode in einer Datei und dann die Funktion mit der AWS CLI.

**Eine Funktion erstellen**

1. Erstellen Sie den Funktionscode in einer Datei und speichern Sie ihn in einem Verzeichnis, mit dem Ihr Computer eine Verbindung herstellen kann. 

1. Führen Sie den Befehl wie im Beispiel veranschaulicht aus. In diesem Beispiel wird die Notation `fileb://` verwendet, um die Datei zu übergeben. Es sind Zeilenumbrüche enthalten, um den Befehl lesbarer zu machen. 

   ```
   aws cloudfront create-function \
       --name MaxAge \
       --function-config '{"Comment":"Max Age 2 years","Runtime":"cloudfront-js-2.0","KeyValueStoreAssociations":{"Quantity":1,"Items":[{"KeyValueStoreARN":"arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"}]}}' \
       --function-code fileb://function-max-age-v1.js
   ```
**Hinweise**  
`Runtime`— Die Version von JavaScript. Wenn Sie [Schlüssel-Wert-Paare](kvs-with-functions.md) in der Funktion verwenden möchten, müssen Sie Version 2.0 angeben.
`KeyValueStoreAssociations` – Wenn Ihre Funktion Schlüssel-Wert-Paare verwendet, können Sie den Schlüsselwertspeicher beim Erstellen der Funktion zuordnen. Oder Sie können ihn später mit `update-function` zuordnen. Die `Quantity` ist immer `1`, weil jeder Funktion nur ein Schlüsselwertspeicher zugeordnet werden kann.

   Wenn der Befehl erfolgreich ausgeführt wurde, wird die Ausgabe folgendermaßen angezeigt.

   ```
   ETag: ETVABCEXAMPLE
   FunctionSummary:
     FunctionConfig:
       Comment: Max Age 2 years
       Runtime: cloudfront-js-2.0
       KeyValueStoreAssociations= \
         {Quantity=1, \
         Items=[{KeyValueStoreARN='arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111'}]} \
     FunctionMetadata:
       CreatedTime: '2021-04-18T20:38:56.915000+00:00'
       FunctionARN: arn:aws:cloudfront::111122223333:function/MaxAge
       LastModifiedTime: '2023-11-19T20:38:56.915000+00:00'
       Stage: DEVELOPMENT
     Name: MaxAge
     Status: UNPUBLISHED
   Location: https://cloudfront.amazonaws.com/2020-05-31/function/arn:aws:cloudfront:::function/MaxAge
   ```

   Die meisten Informationen werden aus der Anfrage wiederholt. Weitere Informationen werden hinzugefügt von CloudFront.
**Hinweise**  
`ETag` – Dieser Wert ändert sich jedes Mal, wenn Sie den Schlüsselwertspeicher ändern. Sie verwenden diesen Wert und den Funktionsnamen, um in Zukunft auf die Funktion zu verweisen. Stellen Sie sicher, dass Sie immer das aktuelle `ETag` verwenden.
`FunctionARN`— Der ARN für Ihre CloudFront Funktion.
111122223333 — Das. AWS-Konto
`Stage` – die Phase der Funktion (`LIVE` oder `DEVELOPMENT`) 
`Status` – der Status der Funktion (`PUBLISHED` oder `UNPUBLISHED`)

------

Nachdem Sie die Funktion erstellt haben, wird sie der Phase `DEVELOPMENT` hinzugefügt. Wir empfehlen Ihnen, [Ihre Funktion zu testen](test-function.md), bevor Sie sie [veröffentlichen](publish-function.md). Nachdem Sie Ihre Funktion veröffentlicht haben, wechselt sie zur Phase `LIVE`.

**TaggingConflict Fehler beim Erstellen von Funktionen**  
CloudFront Funktionen werden ARNs für Funktionen mit demselben Namen wiederverwendet. Beim Erstellen einer Funktion mit Tags kann ein Fehler `TaggingConflict` (HTTP 409) auftreten. Dies kann in den folgenden Szenarien auftreten:  
**Nach dem Löschen einer Funktion** — Eine Funktion mit demselben Namen und denselben Tags wird unmittelbar nach dem Löschen neu erstellt.
**Nach einem fehlgeschlagenen Erstellungsversuch** — Wenn eine vorherige Erstellungsanforderung fehlschlug (z. B. aufgrund ungültiger Parameter, ungültiger KVS-Assoziation oder eines fehlgeschlagenen CloudFormation Stack-Rollbacks).
Wenn Sie eine `TaggingConflict` Fehlermeldung erhalten, können Sie:  
Warten Sie einige Minuten und wiederholen Sie den Vorgang.
Verwenden Sie einen anderen Funktionsnamen. Dadurch wird der ARN-Wiederverwendungskonflikt vollständig vermieden.
Wenn Ihre Vorlage KeyValueStore sowohl eine Funktion als auch eine Funktion erstellt, die darauf verweist, fügen Sie eine explizite Funktion hinzu, `DependsOn` um sicherzustellen, dass das KVS vollständig bereitgestellt ist, bevor die Funktion erstellt wird.