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.
Rubriques
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
Il s'agit d'un JSON objet qui contient une représentation de la HTTP demande (et de la réponse, si votre fonction modifie la HTTP réponse).
Modifier la HTTP demande dans un type d'événement de demande de consultation
Votre fonction peut modifier la HTTP demande CloudFront reçue du 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.
Lorsque vous créez une fonction qui modifie la HTTP demande, assurez-vous de choisir le type d'événement de la demande du spectateur. Cela signifie que la fonction s'exécute 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
Le pseudocode suivant montre la structure d'une fonction qui modifie la demande. HTTP
function handler(event) { var request = event.request; // Modify the request object here. return request; }
La fonction renvoie l'request
objet 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 HTTP réponse dans le type d'événement d'une demande de consultation
Votre fonction peut générer une HTTP réponse à 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 demande vers une nouvelle demandeURL, ou vérifier l'autorisation et renvoyer une 401
403
réponse à des demandes non autorisées.
Lorsque vous créez une fonction qui génère une HTTP réponse, assurez-vous de choisir le type d'événement de demande du spectateur. 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
Le pseudocode suivant montre la structure d'une fonction qui génère une HTTP réponse.
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.
Modifier la HTTP réponse dans le type d'événement de réponse d'un utilisateur
Votre fonction peut modifier la HTTP réponse 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 HTTP réponse, veillez à choisir le type d'événement de réponse du visualiseur. 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
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'response
objet modifié à CloudFront, qui revient CloudFront immédiatement au visualiseur.
Informations connexes
Pour plus d'informations sur l'utilisation des CloudFront fonctions, consultez les rubriques suivantes :