

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.

# Écriture et création d’une fonction Lambda@Edge
<a name="lambda-edge-create-function"></a>

Pour utiliser Lambda@Edge, vous devez *écrire* le code de votre fonction AWS Lambda . Pour vous aider à écrire des fonctions Lambda@Edge, consultez les ressources suivantes :
+  [Structure d'événement Lambda@Edge](lambda-event-structure.md) : comprenez la structure d’événement à utiliser avec Lambda@Edge.
+ [Exemples de fonctions Lambda@Edge](lambda-examples.md)— Exemples de fonctions, telles que le A/B test et la génération d'une redirection HTTP.

Le modèle de programmation pour utiliser Node.js ou Python avec Lambda@Edge est le même que pour l’utilisation de Lambda dans une Région AWS. Pour plus d’informations, consultez [Création de fonctions Lambda avec Node.js](https://docs.aws.amazon.com/lambda/latest/dg/lambda-nodejs.html) ou [Création de fonctions Lambda avec Python](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html) dans le *Guide du développeur AWS Lambda *.

Dans votre fonction Lambda@Edge, insérez le paramètre `callback` et renvoyez l’objet applicable pour les événements de demande ou de réponse :
+ **Événements de demande** – Incluez l'objet `cf.request` dans la réponse.

  Si vous générez une réponse, incluez l'objet `cf.response` dans la réponse. Pour plus d’informations, consultez [Génération de réponses HTTP dans les déclencheurs de demande](lambda-generating-http-responses.md#lambda-generating-http-responses-in-requests). 
+ **Événements de réponse** – Incluez l'objet `cf.response` dans la réponse.

Après avoir écrit votre propre code ou utilisé l’un des exemples, vous créez la fonction dans Lambda. Pour créer une fonction ou modifier une fonction existante, consultez les rubriques suivantes :

**Topics**
+ [Création d’une fonction Lambda@Edge](lambda-edge-create-in-lambda-console.md)
+ [Modification d’une fonction Lambda](lambda-edge-edit-function.md)

 *Après avoir créé la fonction dans Lambda, vous configurez Lambda pour qu'elle exécute la fonction en fonction d' CloudFront événements spécifiques, appelés déclencheurs.* Pour de plus amples informations, veuillez consulter [Ajout de déclencheurs pour une fonction Lambda@Edge](lambda-edge-add-triggers.md).

# Création d’une fonction Lambda@Edge
<a name="lambda-edge-create-in-lambda-console"></a>

 AWS Lambda Pour configurer l'exécution de fonctions Lambda basées sur des CloudFront événements, suivez cette procédure.<a name="lambda-edge-create-function-procedure"></a>

**Pour créer une fonction Lambda@Edge**

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

1. Si vous avez déjà une ou plusieurs fonctions Lambda, choisissez **Create function (Créer fonction)**.

   Si vous n'avez aucune fonction, choisissez **Mise en route**.

1. Dans la liste des régions située en haut de la page, choisissez **US East (N. Virginia) (USA Est (Virginie du Nord))**.

1. Créez une fonction à l'aide de votre propre code ou en partant d'un plan CloudFront .
   + Pour créer une fonction à l'aide de votre propre code, choisissez **Créer à partir de zéro**. 
   + **Pour afficher une liste de plans pour CloudFront, saisissez **cloudfront** dans le champ de filtre, puis choisissez Entrée.**

     Si vous trouvez un plan que vous souhaitez utiliser, choisissez le nom de ce plan.

1. Dans la section **Informations de base**, spécifiez les valeurs suivantes :

   1. **Nom** : saisissez le nom de votre fonction.

   1. **Rôle** : pour démarrer rapidement, choisissez **Créer un rôle à partir de modèles**. Vous pouvez également sélectionner **Choisir un rôle existant** ou **Créer un rôle personnalisé**, puis suivre les invites pour compléter les informations de cette section.

   1. **Nom du rôle** : entrez un nom pour le rôle.

   1. **Modèles de stratégies** : choisissez **Autorisations Lambda de périphérique standard**.

1. Si vous avez choisi **Créer à partir de zéro** à l'étape 4, passez directement à l'étape 7.

   Si vous avez choisi un plan à l'étape 4, la section **cloudfront** vous permet de créer un déclencheur, qui associe cette fonction à un cache dans une CloudFront distribution et à un événement. CloudFront Pour l'instant, nous vous recommandons de choisir **Supprimer**, afin qu'il n'y ait pas de déclencheur pour la fonction lorsqu'elle sera créée. Vous pourrez ajouter des déclencheurs par la suite. 
**Astuce**  
Nous vous recommandons de tester et déboguer la fonction avant d’ajouter des déclencheurs. Si vous ajoutez un déclencheur maintenant, la fonction s'exécutera dès que vous la créerez, qu'elle aura fini de se répliquer AWS dans le monde entier et que la distribution correspondante sera déployée.

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

   Lambda crée deux versions de votre fonction : \$1LATEST et Version 1. Vous pouvez modifier uniquement la version \$1LATEST, mais la console affiche initialement la version 1.

1. Pour modifier la fonction, choisissez **Version 1** en haut de la page, sous l'ARN de la fonction. Puis, dans l'onglet **Versions**, choisissez **\$1LATEST**. (Si vous avez quitté la fonction, puis êtes revenu à celle-ci, le bouton est appelé **Qualificateurs**.)

1. Dans l'onglet **Configuration**, choisissez le **Type d'entrée de code** applicable. Ensuite, suivez les instructions pour modifier ou charger votre code.

1. Pour **Exécution**, choisissez la valeur en fonction du code de votre fonction.

1. Dans la section **Balises**, ajoutez les éventuelles balises applicables.

1. Choisissez **Actions**, puis **Publier une nouvelle version**.

1. Saisissez la description de la nouvelle version de la fonction.

1. Choisissez **Publish**.

1. Testez et déboguez la fonction. Pour plus d’informations sur les tests de la console Lambda, consultez [Invoquer une fonction Lambda avec la console](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html#get-started-invoke-manually) dans le *Guide du développeur AWS Lambda *.

1. Lorsque vous êtes prêt à exécuter la fonction pour des CloudFront événements, publiez une autre version et modifiez la fonction pour ajouter des déclencheurs. Pour de plus amples informations, veuillez consulter [Ajout de déclencheurs pour une fonction Lambda@Edge](lambda-edge-add-triggers.md).

# Modification d’une fonction Lambda
<a name="lambda-edge-edit-function"></a>

Après avoir créé une fonction Lambda@Edge, vous pouvez utiliser la console Lambda pour la modifier.

**Remarques**  
La version d'origine est étiquetée \$1LATEST.
Vous ne pouvez modifier que la version \$1LATEST.
Chaque fois que vous modifiez la version \$1LATEST, vous devez publier une nouvelle version numérotée.
Vous ne pouvez pas créer de déclencheurs pour \$1LATEST.
Lorsque vous publiez une nouvelle version d'une fonction, Lambda ne copie pas automatiquement les déclencheurs à partir de la version précédente vers la nouvelle version. Vous devez reproduire les déclencheurs pour la nouvelle version. 
Lorsque vous ajoutez un déclencheur pour un CloudFront événement à une fonction, s'il existe déjà un déclencheur pour la même distribution, le même comportement de cache et le même événement pour une version antérieure de la même fonction, Lambda supprime le déclencheur de la version précédente.
Après avoir mis à jour une CloudFront distribution, par exemple en ajoutant des déclencheurs, vous devez attendre que les modifications se propagent aux emplacements périphériques pour que les fonctions que vous avez spécifiées dans les déclencheurs fonctionnent.<a name="lambda-edge-edit-function-procedure"></a>

**Pour modifier une fonction Lambda**

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

1. Dans la liste des régions située en haut de la page, choisissez **US East (N. Virginia) (USA Est (Virginie du Nord))**.

1. Dans la liste des fonctions, choisissez le nom de la fonction.

   Par défaut, la console affiche la version \$1LATEST. Vous pouvez consulter les versions précédentes (choisissez **Qualificateurs**), mais vous ne pouvez modifier que \$1 LATEST.

1. Dans l'onglet **Code**, pour **Code entry type (Type d'entrée de code)**, choisissez de modifier le code dans le navigateur, de charger un fichier .zip ou de charger un fichier depuis Amazon S3.

1. Choisissez **Enregistrer** ou **Enregistrer et tester**.

1. Choisissez **Actions**, puis **Publish new version (Publier nouvelle version)**. 

1. Dans la boîte de dialogue **Publier la nouvelle version à partir de \$1LATEST**, indiquez une description de la nouvelle version. Cette description s'affiche dans la liste des versions, accompagnée d'un numéro de version généré automatiquement. 

1. Choisissez **Publish**.

   La nouvelle version devient automatiquement la version la plus récente. Le numéro de version s’affiche dans la zone **Version** dans l’angle supérieur gauche de la page.
**Note**  
Si vous n’avez pas encore ajouté de déclencheurs pour votre fonction, consultez [Ajout de déclencheurs pour une fonction Lambda@Edge](lambda-edge-add-triggers.md). 

1. Choisissez l’onglet **Déclencheurs**.

1. Choisissez **Add trigger (Ajouter déclencheur)**.

1. Dans la boîte de dialogue **Add trigger (Ajouter déclencheur)**, choisissez la zone en pointillé, puis **CloudFront**.
**Note**  
Si vous avez déjà créé un ou plusieurs déclencheurs pour une fonction, CloudFront c'est le service par défaut.

1. Spécifiez les valeurs suivantes pour indiquer le moment où vous voulez que la fonction Lambda s’exécute.

   1. **ID de distribution** : choisissez l’ID de la distribution que vous souhaitez ajouter au déclencheur.

   1. **Comportement du cache** : choisissez le comportement de cache qui spécifie les objets sur lesquels vous souhaitez exécuter la fonction.

   1. **CloudFront event** — Choisissez l' CloudFront événement à l'origine de l'exécution de la fonction.

   1. **Activer le déclencheur et répliquer** : cochez cette case pour que Lambda effectue une réplication globale de la fonction vers les Régions AWS .

1. Sélectionnez **Soumettre**.

1. Pour ajouter d'autres déclencheurs pour cette fonction, répétez les étapes 10 à 13.

Pour plus d’informations sur les tests et le débogage de la console Lambda, consultez [Invoquer une fonction Lambda avec la console](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html#get-started-invoke-manually) dans le *Guide du développeur AWS Lambda *.

Lorsque vous êtes prêt à exécuter la fonction pour des CloudFront événements, publiez une autre version et modifiez la fonction pour ajouter des déclencheurs. Pour de plus amples informations, veuillez consulter [Ajout de déclencheurs pour une fonction Lambda@Edge](lambda-edge-add-triggers.md).