Association de fonctions à des distributions - Amazon CloudFront

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.

Note

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
  1. Connectez-vous à la console CloudFront à l’adresse https://console.aws.amazon.com/cloudfront/v4/home#/functions et sélectionnez la page Fonctions.

  2. Choisissez la fonction que vous souhaitez associer.

  3. Sur la page Fonction, choisissez l’onglet Publier.

  4. Choisissez Fonction Publier.

  5. 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 :

    • Demande de l’utilisateur : exécute la fonction chaque fois que CloudFront reçoit une demande.

    • Réponse de l’utilisateur : exécute la fonction chaque fois que CloudFront renvoie une réponse.

  6. 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
  1. Ouvrez une fenêtre de ligne de commande.

  2. 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.

  3. Ouvrez le fichier nommé dist-config.yaml que vous avez créé. Apportez les modifications suivantes au fichier.

    1. Renommez le champ ETag en IfMatch, mais ne modifiez pas la valeur du champ.

    2. 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
    3. Après avoir effectué ces modifications, enregistrez le fichier.

  4. 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.