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.
Création de fonctions
La création d’une fonction se déroule en deux temps :
-
Créez le code de fonction sous la forme JavaScript. Vous pouvez utiliser l'exemple par défaut de la CloudFront console ou écrire le vôtre. Pour plus d’informations, consultez les rubriques suivantes :
-
CloudFront À utiliser pour créer la fonction et inclure votre code. Le code existe à l’intérieur de la fonction (et non en tant que référence).
- Console
-
Pour créer une fonction
-
Connectez-vous à la CloudFront console sur https://console.aws.amazon.com/cloudfront/v4/home#/functions et choisissez la page Fonctions.
-
Choisissez Créer une fonction.
-
Entrez un nom de fonction unique dans le Compte AWS, choisissez la JavaScript version, puis choisissez Continuer. La page de détails s’affiche pour la nouvelle fonction.
Pour utiliser des paires clé-valeur dans la fonction, vous devez choisir JavaScript runtime 2.0.
Si vous rencontrez une erreur TaggingConflict (HTTP 409) lors de la création d'une fonction avec des balises, attendez quelques minutes et réessayez, ou créez initialement la fonction sans balises et ajoutez-les ensuite.
-
Dans la section Code de fonction, sélectionnez l’onglet Création et entrez votre code de fonction. L’exemple de code inclus dans l’onglet Création illustre la syntaxe de base du code de fonction.
-
Sélectionnez Enregistrer les modifications.
-
Si le code de fonction utilise des paires clé-valeur, vous devez associer un magasin de clés-valeurs.
Vous pouvez associer le magasin de clés-valeurs lors de la création initiale de la fonction. Ou, vous pouvez l’associer ultérieurement, en mettant à jour la fonction.
Pour associer un magasin de clés-valeurs dès maintenant, procédez comme suit :
-
Accédez à la KeyValueStore section Associer et choisissez Associer existant KeyValueStore.
-
Sélectionnez le magasin clé-valeur qui contient les paires clé-valeur de la fonction, puis choisissez Associer. KeyValueStore
CloudFront associe immédiatement le magasin à la fonction. Vous n’avez pas besoin d’enregistrer la fonction.
- CLI
-
Si vous utilisez la CLI, vous commencez généralement par créer le code de fonction dans un fichier, puis vous créez la fonction avec AWS CLI.
Pour créer une fonction
-
Créez le code de fonction dans un fichier et stockez-le dans un répertoire auquel votre ordinateur peut se connecter.
-
Exécutez la commande, comme illustré dans l’exemple. 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 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
-
Runtime— La version de JavaScript. Pour utiliser des paires clé-valeur dans la fonction, vous devez spécifier la version 2.0.
-
KeyValueStoreAssociations : si votre fonction utilise des paires clé-valeur, vous pouvez associer le magasin de clés-valeurs lors de la création initiale de la fonction. Ou vous pouvez l’associer ultérieurement, en utilisant update-function. Quantity a toujours pour valeur 1, car chaque fonction peut être associée uniquement à un seul magasin de clés-valeurs.
Lorsque la commande s’exécute correctement, vous obtenez une sortie similaire à ce qui suit.
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
La plupart des informations proviennent de la demande. D'autres informations sont ajoutées par CloudFront.
-
ETag : cette valeur change chaque fois que vous modifiez le magasin de clés-valeurs. Vous utilisez cette valeur et le nom de la fonction pour référencer la fonction à l’avenir. Assurez-vous de toujours utiliser l’ETag actuel.
-
FunctionARN— L'ARN de votre CloudFront fonction.
-
111122223333 — Le. Compte AWS
-
Stage : le stade de la fonction (LIVE ou DEVELOPMENT).
-
Status : l’état de la fonction (PUBLISHED ou UNPUBLISHED).
Une fois que vous avez créé la fonction, elle est ajoutée à la phase DEVELOPMENT. Nous vous recommandons de tester votre fonction avant de la publier. Une fois que vous avez publié votre fonction, celle-ci passe à la phase LIVE.
TaggingConflict erreur lors de la création de fonctions
CloudFront Les fonctions sont réutilisées ARNs pour les fonctions portant le même nom. Vous pouvez rencontrer une erreur TaggingConflict (HTTP 409) lors de la création d'une fonction avec des balises. Cela peut se produire dans les scénarios suivants :
-
Après avoir supprimé une fonction : recréer une fonction portant le même nom et les mêmes balises immédiatement après la suppression.
-
Après une tentative de création infructueuse : si une demande de création précédente a échoué (par exemple, en raison de paramètres non valides, d'une association KVS non valide ou d'un échec de la restauration de la CloudFormation pile).
Si vous recevez un TaggingConflict message d'erreur, vous pouvez :
-
Patientez quelques minutes et recommencez l'opération.
-
Utilisez un autre nom de fonction. Cela permet d'éviter complètement le conflit de réutilisation de l'ARN.
-
Si votre modèle crée à la fois une fonction KeyValueStore et une fonction qui le référence, ajoutez-en un explicite DependsOn pour vous assurer que le KVS est entièrement provisionné avant la création de la fonction.