Association de fonctions à des distributions
Pour utiliser une fonction avec une distribution, associez la fonction à un ou plusieurs comportements de cache dans la distribution. Vous pouvez associer une fonction à plusieurs comportements de cache dans plusieurs distributions.
Vous pouvez associer une fonction avec l’un des éléments suivants :
-
Un comportement de cache existant
-
Un nouveau comportement de cache dans une distribution existante
-
Un nouveau comportement de cache dans une nouvelle distribution
Lorsque vous associez une fonction à un comportement de cache, vous devez choisir un type d'évènement. Le type d’évènement détermine quand CloudFront exécute la fonction.
Vous pouvez choisir parmi les types d’événement suivants :
-
Demande utilisateur : la fonction s’exécute lorsque CloudFront reçoit une demande provenant d’un utilisateur.
-
Réponse utilisateur – la fonction s'exécute avant que CloudFront ne renvoie une réponse à l'utilisateur.
Vous ne pouvez pas utiliser de types d’évènements orientés vers l’origine (requête d’origine et réponse d’origine) avec Fonctions CloudFront. Vous pouvez utiliser Lambda@Edge à la place. Pour plus d’informations, consultez Événements CloudFront pouvant déclencher une fonction Lambda@Edge.
Avant d'associer une fonction, vous devez la publier à l'étape LIVE.
Vous pouvez associer une fonction à une distribution dans la console CloudFront ou avec l’AWS Command Line Interface (AWS CLI). La procédure suivante montre comment associer une fonction à un comportement de cache existant.
- Console
-
Pour associer une fonction à un comportement de cache existant
-
Connectez-vous à la console CloudFront à l’adresse https://console.aws.amazon.com/cloudfront/v4/home#/functions et sélectionnez la page Fonctions.
-
Choisissez la fonction que vous souhaitez associer.
-
Sur la page Fonction, choisissez l’onglet Publier.
-
Choisissez Fonction Publier.
-
Choisissez Ajouter une association. Dans la boîte de dialogue qui apparaît, choisissez une distribution, un type d’événement et/ou un comportement de cache.
Pour le type d’événement, choisissez le moment où vous souhaitez que cette fonction s’exécute :
-
Pour enregistrer la configuration, choisissez Ajouter une association.
CloudFront associe la distribution à la fonction. Attendez quelques minutes pour que la distribution associée termine son déploiement. Vous pouvez choisir Afficher la distribution sur la page de détails de la fonction pour vérifier la progression.
- CLI
-
Pour associer une fonction à un comportement de cache existant
-
Ouvrez une fenêtre de ligne de commande.
-
Saisissez la commande suivante pour enregistrer la configuration de distribution pour la distribution dont vous souhaitez associer le comportement de cache à une fonction. Cette commande enregistre la configuration de distribution dans un fichier nommé dist-config.yaml. Pour utiliser cette commande, procédez comme suit :
-
Remplacez DistributionID par l'ID de la distribution.
-
Exécutez la commande sur une ligne. Dans l’exemple, des sauts de ligne sont fournis pour rendre l’exemple plus lisible.
aws cloudfront get-distribution-config \
--id DistributionID \
--output yaml > dist-config.yaml
Lorsque la commande réussit, AWS CLI ne renvoie aucune sortie.
-
Ouvrez le fichier nommé dist-config.yaml que vous avez créé. Apportez les modifications suivantes au fichier.
-
Renommez le champ ETag en IfMatch, mais ne modifiez pas la valeur du champ.
-
Dans le comportement du cache, recherchez l'objet nommé FunctionAssociations. Mettez à jour cet objet pour ajouter une association de fonctions. La syntaxe YAML pour une association de fonctions ressemble à l'exemple ci-dessous.
-
L'exemple suivant montre un objet d'évènement de requête utilisateur (déclenchement). Pour utiliser le type d'évènement Réponse utilisateur, remplacez viewer-request par viewer-response.
-
Remplacez arn:aws:cloudfront::111122223333:function/ExampleFunction par l'Amazon Resource Name (ARN) de la fonction que vous associez à ce comportement de cache. Pour obtenir l'ARN de la fonction, vous pouvez utiliser la commande aws cloudfront
list-functions.
FunctionAssociations:
Items:
- EventType: viewer-request
FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
Quantity: 1
-
Après avoir effectué ces modifications, enregistrez le fichier.
-
Utilisez la commande suivante pour mettre à jour la distribution, en ajoutant l'association de fonctions. Pour utiliser cette commande, procédez comme suit :
-
Remplacez DistributionID par l'ID de la distribution.
-
Exécutez la commande sur une ligne. Dans l’exemple, des sauts de ligne sont fournis pour rendre l’exemple plus lisible.
aws cloudfront update-distribution \
--id DistributionID \
--cli-input-yaml file://dist-config.yaml
Lorsque la commande réussit, vous voyez une sortie similaire à la suivante, qui décrit la distribution qui vient d'être mise à jour avec l'association de fonctions. L'exemple de sortie suivant est tronqué pour plus de lisibilité.
Distribution:
ARN: arn:aws:cloudfront::111122223333:distribution/EBEDLT3BGRBBW
... truncated ...
DistributionConfig:
... truncated ...
DefaultCacheBehavior:
... truncated ...
FunctionAssociations:
Items:
- EventType: viewer-request
FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
Quantity: 1
... truncated ...
DomainName: d111111abcdef8.cloudfront.net
Id: EDFDVBD6EXAMPLE
LastModifiedTime: '2021-04-19T22:39:09.158000+00:00'
Status: InProgress
ETag: E2VJGGQEG1JT8S
Le Status de la distribution passe à InProgress pendant le redéploiement de la distribution. Lorsque la nouvelle configuration de distribution atteint un emplacement périphérique CloudFront, cet emplacement commence à utiliser la fonction associée. Lorsque la distribution est entièrement déployée, l’Status repasse à Deployed. Cela indique que la fonction CloudFront associée est active dans l’ensemble des emplacements périphériques CloudFront dans le monde. Cela prend généralement quelques minutes.