Prueba de funciones - Amazon CloudFront

Prueba de funciones

Antes de implementar función en la etapa activa (producción), puede probarla para verificar que funciona según lo previsto. Para probar una función, especifica un objeto de evento que representa una solicitud o respuesta HTTP que su distribución de CloudFront podría recibir en producción.

CloudFront Functions realiza lo siguiente:

  1. Ejecuta la función con el objeto de evento proporcionado como entrada.

  2. Devuelve el resultado de la función (el objeto de evento modificado) junto con los registros de función o mensajes de error y la utilización de cómputode la función. Para obtener más información acerca del uso de cómputo, consulte Descripción del uso de cómputo.

Configuración del objeto del evento

Antes de probar una función, debe configurar el objeto de evento con el cual la probará. Hay varias opciones para hacerlo.

Opción 1: Configurar un objeto de evento sin guardarlo

Puede configurar un objeto de evento en el editor visual de la consola de CloudFront y no guardarlo.

Puede usar este objeto de evento para probar la función desde la consola de CloudFront, aunque no esté guardado.

Opción 2: Crear un objeto de evento en el editor visual

Puede configurar un objeto de evento en el editor visual de la consola de CloudFront y no guardarlo. Puede crear 10 objetos de eventos para cada función para, por ejemplo, probar diferentes entradas posibles.

Al crear el objeto de evento de esta manera, puede usarlo para probar la función en la consola de CloudFront. No puede usarlo para probar la función mediante una API o un SDK de AWS.

Opción 3: Crear un objeto de evento mediante un editor de texto

Puede usar un editor de texto para crear un objeto de evento a mano en formato JSON. Para obtener información sobre la estructura de un objeto de evento, consulte Estructura de evento.

Puede usar este objeto de evento para probar la función mediante la CLI. Sin embargo, no se puede utilizar para probar la función en la consola de CloudFront.

Para crear un objeto de evento (opción 1 o 2)
  1. Inicie sesión en la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v4/home#/functions y elija la página Funciones.

    Elija la función que desea probar.

  2. En la página de detalles de la función, seleccione la pestaña Probar.

  3. En Tipo de evento, elija una de las siguientes opciones:

    • Elija Solicitud del lector si la función modifica una solicitud HTTP o genera una respuesta basada en la solicitud. Aparece la sección Solicitud.

    • O bien, seleccione Respuesta del lector. Aparecen las secciones Solicitud y Respuesta.

  4. Complete los campos que desee incluir en el evento. Puede elegir Editar JSON para ver el JSON sin procesar.

  5. (Opcional) Para guardar el evento, elija Guardar y, en Save test event, introduzca un nombre y, a continuación, seleccione Guardar.

    También puede elegir Editar JSON, copiar el JSON sin procesar y guardarlo en su propio archivo, fuera de CloudFront.

Para crear un objeto de evento (opción 3)

Cree el objeto de evento mediante un editor de texto. Guarde el archivo en un directorio al que se pueda conectar su equipo.

Asegúrese de seguir estas directrices:

  • Omita los campos distributionDomainName, distributionId y requestId.

  • Los nombres de encabezados, cookies y cadenas de consulta deben estar en minúsculas.

Una opción para crear un objeto de evento de esta manera es crear una muestra mediante el editor visual. Puede estar seguro de que la muestra tiene el formato correcto. A continuación, puede copiar el JSON sin procesar, pegarlo en un editor de texto y guardar el archivo.

Para obtener más información sobre la estructura de un evento, consulte Estructura de evento.

Prueba de la función

Puede probar una función en la consola de CloudFront o con la AWS Command Line Interface (AWS CLI).

Console
Para probar la función
  1. Inicie sesión en la consola de CloudFront en https://console.aws.amazon.com/cloudfront/v4/home#/functions y elija la página Funciones.

  2. Elija la función que desea probar.

  3. Elija la pestaña Prueba.

  4. Asegúrese de que se muestre el evento correcto. Si desea cambiar desde el evento que se muestra actualmente, elija otro evento en el campo Seleccionar evento de prueba.

  5. Seleccione Probar función. La consola muestra el resultado de la función, incluidos los registros de funciones y el uso del cómputo.

CLI

Puede probar una función mediante el comando aws cloudfront test-function.

Para probar la función
  1. Abra una ventana de línea de comandos.

  2. Ejecute el siguiente comando desde el directorio que contiene el archivo especificado.

    En este ejemplo, se utiliza la notación fileb:// para transmitir el archivo del objeto de evento. También incluye saltos de línea para que el comando sea más legible.

    aws cloudfront test-function \ --name MaxAge \ --if-match ETVABCEXAMPLE \ --event-object fileb://event-maxage-test01.json \ --stage DEVELOPMENT
    Notas
    • Se hace referencia a la función por su nombre y por la ETag (en el parámetro if-match). Se hace referencia al objeto de evento por su ubicación en el sistema de archivos.

    • El estado puede ser DEVELOPMENT o LIVE.

    Si el comando se ejecuta correctamente, verá un resultado parecido al siguiente.

    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
Notas
  • FunctionExecutionLogs contiene una lista de líneas de registro que la función escribió en instrucciones console.log() (si las hay).

  • ComputeUtilization contiene información sobre la ejecución de la función. Consulte Descripción del uso de cómputo.

  • FunctionOutput contiene el objeto de evento que devolvió la función.

Descripción del uso de cómputo

Utilización de cómputo es la cantidad de tiempo que la función tardó en ejecutarse como un porcentaje del tiempo máximo permitido. Por ejemplo, un valor de 35 significa que la función se completó en el 35 % del tiempo máximo permitido.

Si una función supera continuamente el tiempo máximo permitido, CloudFront la limita. En la siguiente lista se explica la probabilidad de que una función se limite en función del valor de utilización de cómputo.

Valor de utilización de cómputo

  • 1 — 50: la función está cómodamente por debajo del tiempo máximo permitido y debe ejecutarse sin limitación.

  • 51 — 70: la función se acerca al tiempo máximo permitido. Considere optimizar el código de la función.

  • 71 — 100: la función está muy cerca o supera el tiempo máximo permitido. Es probable que CloudFront limite esta función si la asocia a una distribución.