Didacticiel : création d’une fonction simple avec les fonctions CloudFront
Ce didacticiel vous montre comment démarrer avec les fonctions CloudFront. 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é.
Table des matières
Prérequis
Pour utiliser CloudFront Functions, vous avez besoin d'une distribution CloudFront. Si vous n'en avez pas, consultez Mise en route avec une distribution standard CloudFront.
Créer la fonction
Vous pouvez utiliser la console CloudFront pour créer une fonction simple qui redirige l’utilisateur vers une URL différente et renvoie également un en-tête de réponse personnalisé.
Pour créer une fonction CloudFront
Connectez-vous à AWS Management Console et ouvrez la console CloudFront à l’adresse https://console.aws.amazon.com/cloudfront/v4/home
. -
Dans le panneau de navigation, choisissez Fonctions, puis Créer une fonction.
-
Sur la page Créer une fonction, entrez un nom de fonction tel que
MyFunctionNamedans le champ Nom. -
(Facultatif) Dans Description, saisissez une description pour la fonction, par exemple,
Simple test function. -
Pour Environnement d’exécution, conservez la version JavaScript sélectionnée par défaut.
-
Sélectionnez Créer une fonction.
-
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; } -
Dans Code de fonction, collez le code dans l’éditeur de code pour remplacer le code par défaut.
-
Sélectionnez Enregistrer les modifications.
-
(Facultatif) vous pouvez tester la fonction avant de la publier. Ce didacticiel ne décrit pas comment tester une fonction. Pour plus d’informations, consultez Fonctions de test.
-
Choisissez l’onglet Publier, puis sélectionnez Publier la fonction. Vous devez publier la fonction avant de pouvoir l’associer à votre distribution CloudFront.
-
Vous pouvez ensuite associer la fonction à une distribution ou à un comportement de cache. Sur la page
MyFunctionName, 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.
-
Choisissez Ajouter une association.
-
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.
-
Choisissez Ajouter une association.
La table Distributions associées indique la distribution associée.
-
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
Après avoir déployé la fonction, vous pouvez vérifier qu’elle fonctionne pour votre distribution.
Pour vérifier la fonction
-
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/. -
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.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==