

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Tutoriel : Création d'une fonction simple avec CloudFront Functions
<a name="functions-tutorial"></a>

Ce didacticiel explique comment démarrer avec CloudFront Functions. Vous pouvez créer une fonction simple qui redirige l’utilisateur vers une autre URL et renvoie également un en-tête de réponse personnalisé.

**Contents**
+ [Conditions préalables](#functions-tutorial-prerequisites)
+ [Créer la fonction](#functions-tutorial-create)
+ [Vérification de la fonction](#functions-tutorial-verify)

## Conditions préalables
<a name="functions-tutorial-prerequisites"></a>

Pour utiliser CloudFront Functions, vous avez besoin d'une CloudFront distribution. Si vous n'en avez pas, consultez [Commencez avec une distribution CloudFront standard](GettingStarted.SimpleDistribution.md).

## Créer la fonction
<a name="functions-tutorial-create"></a>

Vous pouvez utiliser la CloudFront console pour créer une fonction simple qui redirige le lecteur vers une autre URL et renvoie également un en-tête de réponse personnalisé. 

**Pour créer une CloudFront fonction**

1. Connectez-vous à la CloudFront console AWS Management Console et ouvrez-la à l'adresse[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Dans le panneau de navigation, choisissez **Fonctions**, puis **Créer une fonction**. 

1. Sur la page **Créer une fonction**, pour **Nom**, entrez un nom de fonction tel que*MyFunctionName*.

1. (Facultatif) Dans **Description**, saisissez une description pour la fonction, par exemple, **Simple test function**.

1. Pour **Runtime**, conservez la JavaScript version sélectionnée par défaut.

1. Choisissez **Créer une fonction**.

1. Copiez le code de fonction suivant. Ce code de fonction redirige l'utilisateur vers une URL différente et renvoie également un en-tête de réponse personnalisé.

   ```
   function handler(event) {
       // NOTE: This example function is for a viewer request event trigger. 
       // Choose viewer request for event trigger when you associate this function with a distribution. 
       var response = {
           statusCode: 302,
           statusDescription: 'Found',
           headers: {
               'cloudfront-functions': { value: 'generated-by-CloudFront-Functions' },
               'location': { value: 'https://aws.amazon.com/cloudfront/' }
           }
       };
       return response;
   }
   ```

1. Dans **Code de fonction**, collez le code dans l’éditeur de code pour remplacer le code par défaut.

1. Sélectionnez **Enregistrer les modifications**.

1. (Facultatif) vous pouvez tester la fonction avant de la publier. Ce didacticiel ne décrit pas comment tester une fonction. Pour de plus amples informations, veuillez consulter [Fonctions de test](test-function.md).

1. Choisissez l’onglet **Publier**, puis sélectionnez **Publier la fonction**. Vous *devez* publier la fonction avant de pouvoir l'associer à votre CloudFront distribution.

1. Vous pouvez ensuite associer la fonction à une distribution ou à un comportement de cache. Sur la *MyFunctionName* page, choisissez l'onglet **Publier**. 
**Avertissement**  
Dans les étapes suivantes, choisissez une distribution ou un comportement de cache utilisé pour les tests. N’associez pas cette fonction de test à une distribution ou un comportement de cache utilisé en production.

1. Choisissez **Ajouter une association**. 

1. Dans la boîte de dialogue **Association**, choisissez une distribution et/ou un comportement de cache. Pour **Type d’événement**, conservez la valeur par défaut.

1. Choisissez **Ajouter une association**.

   La table **Distributions associées** indique la distribution associée. 

1. Attendez quelques minutes pour que la distribution associée termine son déploiement. Pour vérifier le statut de la distribution, sélectionnez la distribution dans la table **Distributions associées** et choisissez **Afficher une distribution**.

   Lorsque l'état de la distribution est **Déployé**, vous êtes prêt à vérifier que la fonction fonctionne.

## Vérification de la fonction
<a name="functions-tutorial-verify"></a>

Après avoir déployé la fonction, vous pouvez vérifier qu’elle fonctionne pour votre distribution.

**Pour vérifier la fonction**

1. Dans votre navigateur web, accédez au nom de domaine de votre distribution (par exemple, `https://d111111abcdef8.cloudfront.net`).

   La fonction renvoie une redirection vers le navigateur, de sorte que le navigateur ouvre automatiquement `https://aws.amazon.com/cloudfront/`.

1. Dans une fenêtre de ligne de commande, vous pouvez utiliser un outil tel que **curl** pour envoyer une demande au nom de domaine de votre distribution.

   ```
   curl -v https://d111111abcdef8.cloudfront.net/
   ```

   La réponse affiche la réponse de redirection (`302 Found`) et les en-têtes de réponse personnalisés ajoutés par la fonction. Votre réponse peut ressembler à l’exemple suivant.  
**Example**  

   ```
   curl -v https://d111111abcdef8.cloudfront.net/
   > GET / HTTP/1.1
   > Host: d111111abcdef8.cloudfront.net
   > User-Agent: curl/7.64.1
   > Accept: */*
   >
   < HTTP/1.1 302 Found
   < Server: CloudFront
   < Date: Tue, 16 Mar 2021 18:50:48 GMT
   < Content-Length: 0
   < Connection: keep-alive
   < Location: https://aws.amazon.com/cloudfront/
   < Cloudfront-Functions: generated-by-CloudFront-Functions
   < X-Cache: FunctionGeneratedResponse from cloudfront
   < Via: 1.1 3035b31bddaf14eded329f8d22cf188c.cloudfront.net (CloudFront)
   < X-Amz-Cf-Pop: PHX50-C2
   < X-Amz-Cf-Id: ULZdIz6j43uGBlXyob_JctF9x7CCbwpNniiMlmNbmwzH1YWP9FsEHg==
   ```