

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.

# Mise à jour de fonctions
<a name="update-function"></a>

Vous pouvez mettre à jour une fonction à tout moment. Les modifications sont apportées uniquement à la version de la fonction qui figure dans la phase `DEVELOPMENT`. Pour copier les mises à jour de la phase `DEVELOPMENT` vers `LIVE`, vous devez [publier la fonction](publish-function.md). 

Vous pouvez mettre à jour le code d'une fonction dans la CloudFront console ou avec le AWS Command Line Interface (AWS CLI).

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

**Pour mettre à jour le code de la fonction**

1. Connectez-vous à la CloudFront console à l'adresse [https://console.aws.amazon.com/cloudfront/v4/home#/functions](https://console.aws.amazon.com/cloudfront/v4/home#/functions) et sélectionnez la page **Fonctions**.

   Sélectionnez la fonction à mettre à jour.

1. Choisissez **Modifier** et apportez les modifications suivantes :
   + Mettez à jour tous les champs de la section **Détails**.
   + Modifiez ou supprimez le magasin de clés-valeurs associé. Pour plus d’informations sur les magasins de clés-valeurs, consultez [Amazon CloudFront KeyValueStore](kvs-with-functions.md).
   + Modifiez le code de la fonction. Choisissez l’onglet **Création**, apportez des modifications, puis sélectionnez **Enregistrer les modifications** pour enregistrer les modifications apportées au code.

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

**Mettre à jour le code de la fonction.**

1. Ouvrez une fenêtre de ligne de commande.

1. Exécutez la commande suivante.

   Cet exemple utilise la notation `fileb://` pour transmettre le fichier. Il inclut également des sauts de ligne pour rendre la commande plus lisible. 

   ```
   aws cloudfront update-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 \
       --if-match ETVABCEXAMPLE
   ```
**Remarques**  
Vous pouvez identifier la fonction à la fois par son nom et ETag (dans le `if-match` paramètre). Assurez-vous d'utiliser le courant ETag. Vous pouvez obtenir cette valeur à partir de l'opération [DescribeFunction](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_DescribeFunction.html)d'API.
Vous devez inclure l’élément `function-code`, même si vous ne voulez pas le modifier.
Soyez prudent avec l’élément `function-config`. Vous devez transmettre tout ce que vous voulez conserver dans la configuration. En particulier, gérez le magasin de clés-valeurs comme suit :   
Pour conserver l’association de magasin de clés-valeurs existante (le cas échéant), spécifiez le nom du magasin *existant*.
Pour modifier l’association, spécifiez le nom du *nouveau* magasin de clés-valeurs.
Pour supprimer l’association, omettez le paramètre `KeyValueStoreAssociations`. 

   Lorsque la commande s’exécute correctement, vous obtenez une sortie similaire à ce qui suit. 

   ```
   ETag: ETVXYZEXAMPLE
   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-12-19T23:41:15.389000+00:00' \
       Stage: DEVELOPMENT \
     Name: MaxAge \
     Status: UNPUBLISHED
   ```

------

La plupart des informations proviennent de la demande. D'autres informations sont ajoutées par CloudFront.

**Remarques**  
`ETag` : cette valeur change chaque fois que vous modifiez le magasin de clés-valeurs.
`FunctionARN`— L'ARN de votre CloudFront fonction.
`Stage` : le stade de la fonction (`LIVE` ou `DEVELOPMENT`). 
`Status` : l’état de la fonction (`PUBLISHED` ou `UNPUBLISHED`).