Déterminer l'objectif de la fonction - Amazon CloudFront

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.

Déterminer l'objectif de la fonction

Avant d'écrire votre code de fonction, déterminez le but de votre fonction. La plupart des CloudFront fonctions de Functions ont l'un des objectifs suivants.

Quel que soit le but de votre fonction, handler est le point d'entrée pour n'importe quelle fonction. Il prend un seul argument appeléevent, qui est transmis à la fonction par CloudFront. event est un objet JSON qui contient une représentation de la requête HTTP (et la réponse, si votre fonction modifie la réponse HTTP).

Modification de la requête HTTP dans un type d'événement de demande de visionnage

Votre fonction peut modifier la requête HTTP envoyée CloudFront par le visualiseur (client) et renvoyer la demande modifiée CloudFront pour un traitement continu. Par exemple, votre code de fonction peut normaliser la clé de cache ou modifier les en-têtes de requêtes.

Après avoir créé et publié une fonction qui modifie la requête HTTP, veillez à ajouter une association pour le type d'événement de demande du spectateur. Pour de plus amples informations, veuillez consulter Créer la fonction. Cela permet à la fonction de s'exécuter chaque fois qu' CloudFront elle reçoit une demande d'un visualiseur, avant de vérifier si l'objet demandé se trouve dans le CloudFront cache.

Exemple exemple

Le pseudocode suivant montre la structure d'une fonction qui modifie la requête HTTP.

function handler(event) { var request = event.request; // Modify the request object here. return request; }

La fonction renvoie l'requestobjet modifié à CloudFront. CloudFrontpoursuit le traitement de la demande renvoyée en vérifiant la CloudFront présence d'un accès au cache et en envoyant la demande à l'origine si nécessaire.

Génération d'une réponse HTTP dans un type d'événement de demande de visionnage

Votre fonction peut générer une réponse HTTP à la périphérie et la renvoyer directement au visualiseur (client) sans vérifier la présence d'une réponse en cache ni aucun autre traitement par CloudFront. Par exemple, votre code de fonction peut rediriger la requête vers une nouvelle URL, ou vérifier l'autorisation et renvoyer une réponse 401 ou 403 à des requêtes non autorisées.

Lorsque vous créez une fonction qui génère une réponse HTTP, veillez à choisir le type d'évènement requête utilisateur. Cela signifie que la fonction s'exécute chaque fois qu' CloudFront elle reçoit une demande d'un utilisateur, avant CloudFront de poursuivre le traitement de la demande.

Exemple exemple

Le pseudocode suivant montre la structure d'une fonction qui génère une réponse HTTP.

function handler(event) { var request = event.request; var response = ...; // Create the response object here, // using the request properties if needed. return response; }

La fonction renvoie un response objet à CloudFront, qui revient CloudFront immédiatement au visualiseur sans vérifier le CloudFront cache ni envoyer de demande à l'origine.

Modification de la réponse HTTP dans un type d'événement de demande de visionnage

Votre fonction peut modifier la réponse HTTP avant de l' CloudFront envoyer au visualiseur (client), que la réponse provienne du CloudFront cache ou de l'origine. Par exemple, votre code de fonction peut ajouter ou modifier des en-têtes de réponse, des codes de statut et le contenu du corps.

Lorsque vous créez une fonction qui modifie la réponse HTTP, veillez à choisir le type d'évènement réponse utilisateur. Cela signifie que la fonction s'exécute avant de CloudFront renvoyer une réponse au visualiseur, que la réponse provienne du CloudFront cache ou de l'origine.

Exemple exemple

Le pseudocode suivant montre la structure d'une fonction qui modifie la réponse HTTP.

function handler(event) { var request = event.request; var response = event.response; // Modify the response object here, // using the request properties if needed. return response; }

La fonction renvoie l'responseobjet modifié à CloudFront, qui revient CloudFront immédiatement au visualiseur.

Pour plus d'informations sur l'utilisation des CloudFront fonctions, consultez les rubriques suivantes :