Fonctions de test - 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.

Fonctions de test

Avant de déployer la fonction sur la scène en direct (production), vous pouvez tester votre fonction pour vérifier qu'elle fonctionne comme prévu. Pour tester une fonction, vous devez spécifier un objet d'événement qui représente une requête ou une réponse HTTP que votre CloudFront distribution pourrait recevoir en production.

CloudFront Functions effectue les opérations suivantes :

  1. Exécute la fonction, en utilisant l'objet d'événement fourni comme entrée.

  2. Renvoie le résultat de la fonction (l'objet d'évènement modifié) ainsi que les journaux de fonction ou les messages d'erreurs et l'utilisation du calcul de la fonction. Pour plus d'informations sur l'utilisation du calcul, consultez Comprendre l'utilisation du calcul.

Configuration de l’objet d’événement

Avant de tester une fonction, vous devez configurer l’objet d’événement avec lequel la tester. Il existe plusieurs options.

Option 1 : configurer un objet d’événement sans l’enregistrer

Vous pouvez configurer un objet d'événement dans l'éditeur visuel de la CloudFront console sans l'enregistrer.

Vous pouvez utiliser cet objet d'événement pour tester la fonction depuis la CloudFront console, même si elle n'est pas enregistrée.

Option 2 : créer un objet d’événement dans l’éditeur visuel

Vous pouvez configurer un objet d'événement dans l'éditeur visuel de la CloudFront console sans l'enregistrer. Vous pouvez créer 10 objets d’événement pour chaque fonction afin de pouvoir, par exemple, tester différentes entrées possibles.

Lorsque vous créez l'objet d'événement de cette manière, vous pouvez l'utiliser pour tester la fonction dans la CloudFront console. Vous ne pouvez pas l'utiliser pour tester la fonction à l'aide d'une AWS API ou d'un SDK.

Option 3 : créer un objet d’événement à l’aide d’un éditeur de texte

Vous pouvez utiliser un éditeur de texte pour créer un objet d’événement au format JSON. Pour en savoir plus sur la structure d’un objet d’événement, consultez Structure d'évènements.

Vous pouvez utiliser cet objet d’événement pour tester la fonction à l’aide de la CLI. Mais vous ne pouvez pas l'utiliser pour tester la fonction dans la CloudFront console.

Pour créer un objet d'événement (option 1 ou 2)
  1. Connectez-vous à la CloudFront console à l'adresse https://console.aws.amazon.com/cloudfront/v4/home#/functions et sélectionnez la page Fonctions.

    Choisissez la fonction que vous souhaitez tester.

  2. Sur la page de détails de la fonction, choisissez l’onglet Test.

  3. Pour Type d'événement, choisissez l'une des options suivantes :

    • Choisissez Demande de l’utilisateur si la fonction modifie une requête HTTP ou génère une réponse basée sur la demande. La section Demande apparaît.

    • Choisissez Viewer response. Les sections Demande et Réponse apparaissent.

  4. Complétez les champs à inclure dans l'événement. Vous pouvez choisir Modifier le JSON pour afficher le JSON brut.

  5. (Facultatif) Pour enregistrer l'événement, choisissez Enregistrer et dans le champ Enregistrer l'événement de test, entrez un nom, puis sélectionnez Enregistrer.

    Vous pouvez également choisir Modifier le JSON, copier le JSON brut et l'enregistrer dans votre propre fichier, en dehors de CloudFront.

Pour créer un objet d'événement (option 3)

Créez l’objet d’événement à l’aide d’un éditeur de texte. Stockez le fichier dans un répertoire auquel votre ordinateur peut se connecter.

Vérifiez que vous suivez les consignes suivantes :

  • Omettez les champs distributionDomainName, distributionId et requestId.

  • Les noms des en-têtes, des cookies et des chaînes de requête doivent être en minuscules.

Une option permettant de créer un objet d’événement de cette manière consiste à créer un échantillon à l’aide de l’éditeur visuel. Vous pouvez être sûr que l’échantillon est correctement formaté. Vous pouvez ensuite copier le code JSON brut, le coller dans un éditeur de texte et enregistrer le fichier.

Pour plus d'informations sur la structure d'un événement, consultezStructure d'évènements.

Tester la fonction

Vous pouvez tester une fonction dans la CloudFront console ou avec le AWS Command Line Interface (AWS CLI).

Console
Pour tester la fonction
  1. Connectez-vous à la CloudFront console à l'adresse https://console.aws.amazon.com/cloudfront/v4/home#/functions et sélectionnez la page Fonctions.

  2. Choisissez la fonction que vous souhaitez tester.

  3. Choisissez l’onglet Test.

  4. Assurez-vous que l’événement correct est affiché. Pour passer de l'événement actuellement affiché, choisissez un autre événement dans le champ Sélectionner un événement de test.

  5. Choisissez la fonction de test. La console affiche le résultat de la fonction, y compris les journaux des fonctions et l'utilisation du calcul.

CLI

Vous pouvez tester une fonction à l'aide de la aws cloudfront test-function commande.

Pour tester la fonction
  1. Ouvrez une fenêtre de ligne de commande.

  2. Exécutez la commande suivante à partir du même répertoire que celui qui contient le fichier spécifié.

    Cet exemple utilise la fileb:// notation pour transmettre le fichier objet de l'événement. Il inclut également des sauts de ligne pour rendre la commande plus lisible.

    aws cloudfront test-function \ --name MaxAge \ --if-match ETVABCEXAMPLE \ --event-object fileb://event-maxage-test01.json \ --stage DEVELOPMENT
    Remarques
    • Vous référencez la fonction par son nom et son ETag (dans le paramètre if-match). Vous référencez l’objet d’événement par son emplacement dans votre système de fichiers.

    • Il peut s’agir de la phase DEVELOPMENT ou LIVE.

    Lorsque la commande s’exécute correctement, vous obtenez une sortie similaire à ce qui suit.

    TestResult: ComputeUtilization: '21' FunctionErrorMessage: '' FunctionExecutionLogs: [] FunctionOutput: '{"response":{"headers":{"cloudfront-functions":{"value":"generated-by-CloudFront-Functions"},"location":{"value":"https://aws.amazon.com/cloudfront/"}},"statusDescription":"Found","cookies":{},"statusCode":302}}' FunctionSummary: FunctionConfig: Comment: MaxAge function Runtime: cloudfront-js-2.0 KeyValueStoreAssociations= \ {Quantity=1, \ Items=[{KeyValueStoreARN='arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111'}]} \ FunctionMetadata: CreatedTime: '2021-04-18T20:38:56.915000+00:00' FunctionARN: arn:aws:cloudfront::111122223333:function/MaxAge LastModifiedTime: '2023-17-20T10:38:57.057000+00:00' Stage: DEVELOPMENT Name: MaxAge Status: UNPUBLISHED
Remarques
  • FunctionExecutionLogs contient une liste de lignes de journaux que la fonction a écrites dans les instructions console.log() (le cas échéant).

  • ComputeUtilizationcontient des informations sur l'exécution de votre fonction. veuillez consulter Comprendre l'utilisation du calcul.

  • FunctionOutput contient l'objet d'évènement renvoyé par la fonction.

Comprendre l'utilisation du calcul

L'utilisation du calcul est la durée d'exécution de la fonction en pourcentage de la durée maximale autorisée. Par exemple, une valeur de 35 signifie que la durée d'exécution de la fonction représente 35 % du temps maximum autorisé.

Si une fonction dépasse continuellement la durée maximale autorisée CloudFront , elle ralentit. La liste suivante explique la probabilité qu'une fonction soit limitée en fonction de la valeur d'utilisation du calcul.

Valeur d'utilisation du calcul :

  • 1 – 50 : la fonction est largement inférieure à la durée maximale autorisée et devrait s'exécuter sans aucune limitation.

  • 51 – 70 : la fonction approche de la durée maximale autorisée. Envisagez d'optimiser le code de fonction.

  • 71 — 100 — La fonction est très proche de la durée maximale autorisée ou la dépasse. CloudFront est susceptible de limiter cette fonction si vous l'associez à une distribution.