

# Tutorial: creación de una función simple con CloudFront Functions
<a name="functions-tutorial"></a>

En este tutorial se muestra cómo familiarizarse con CloudFront Functions. Puede crear una función simple que redirige el lector a una URL diferente y también devuelve un encabezado de respuesta personalizado.

**Contents**
+ [Requisitos previos](#functions-tutorial-prerequisites)
+ [Creación de la función](#functions-tutorial-create)
+ [Verificación de la función](#functions-tutorial-verify)

## Requisitos previos
<a name="functions-tutorial-prerequisites"></a>

Para utilizar CloudFront Functions, necesita una distribución de CloudFront. Si no dispone de una, consulte [Introducción a una distribución estándar de CloudFront](GettingStarted.SimpleDistribution.md).

## Creación de la función
<a name="functions-tutorial-create"></a>

Puede utilizar la consola de CloudFront para crear una función simple que redirige el lector a una URL diferente y también devuelve un encabezado de respuesta personalizado. 

**Creación de una función de CloudFront**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudFront en [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. En el panel de navegación, seleccione **Funciones** y, a continuación, **Crear una función**. 

1. En la página **Crear función**, en **Nombre**, introduzca un nombre de función como *MyFunctionName*.

1. (Opcional) En **Descripción**, escriba una descripción de la función, como **Simple test function**.

1. Para **Tiempo de ejecución**, mantenga la versión de JavaScript seleccionada de forma predeterminada.

1. Seleccione **Creación de función**.

1. Copie el siguiente código de función. Este código de función redirige al lector a una URL diferente y también devuelve un encabezado de respuesta personalizado.

   ```
   function handler(event) {
       // NOTE: This example function is for a viewer request event trigger. 
       // Choose viewer request for event trigger when you associate this function with a distribution. 
       var response = {
           statusCode: 302,
           statusDescription: 'Found',
           headers: {
               'cloudfront-functions': { value: 'generated-by-CloudFront-Functions' },
               'location': { value: 'https://aws.amazon.com/cloudfront/' }
           }
       };
       return response;
   }
   ```

1. En **Código de función**, pegue el código en el editor de código para reemplazar el código predeterminado.

1. Seleccione **Save changes (Guardar cambios)**.

1. (Opcional) Puede probar la función antes de publicarla. En este tutorial no se describe cómo probar una función. Para obtener más información, consulte [Prueba de funciones](test-function.md).

1. Elija la pestaña **Publicar** y, a continuación, la **función Publicar**. *Debe* publicar la función para poder asociarla a la distribución de CloudFront.

1. A continuación, puede asociar la función a un comportamiento de distribución o caché. En la página *MyFunctionName*, elija la pestaña **Publicar**. 
**aviso**  
En los pasos siguientes, seleccione un comportamiento de distribución o caché que se use para las pruebas. No asocie esta función de prueba a un comportamiento de distribución o caché que se use en producción.

1. Elija **Add association**. 

1. En el cuadro de diálogo **Asociar**, elija un comportamiento de distribución o caché. En **Tipo de evento**, mantenga el valor predeterminado.

1. Elija **Add association**.

   También verá la distribución asociada en la tabla **Distribuciones asociadas**. 

1. Espere unos minutos para que la distribución asociada termine de implementarse. Para comprobar el estado de la distribución, selecciónela en la tabla **Distribuciones asociadas** y elija **Ver distribución**.

   Cuando el estado de la distribución es **Implementada**, está lista para verificar el funcionamiento de la función.

## Verificación de la función
<a name="functions-tutorial-verify"></a>

Tras implementar la función, puede comprobar que funciona para su distribución.

**Verificación de la función**

1. En el navegador web, vaya al nombre de dominio de la distribución (por ejemplo, `https://d111111abcdef8.cloudfront.net`).

   La función devuelve un redireccionamiento al navegador, por lo que el navegador se dirige automáticamente a `https://aws.amazon.com/cloudfront/`.

1. En una ventana de línea de comandos, puede usar una herramienta como **curl** para enviar una solicitud al nombre de dominio de su distribución.

   ```
   curl -v https://d111111abcdef8.cloudfront.net/
   ```

   En la respuesta, verá la respuesta de redireccionamiento (`302 Found`) y los encabezados de respuesta personalizados que agregó la función. La respuesta podría tener un aspecto similar al siguiente.  
**Example**  

   ```
   curl -v https://d111111abcdef8.cloudfront.net/
   > GET / HTTP/1.1
   > Host: d111111abcdef8.cloudfront.net
   > User-Agent: curl/7.64.1
   > Accept: */*
   >
   < HTTP/1.1 302 Found
   < Server: CloudFront
   < Date: Tue, 16 Mar 2021 18:50:48 GMT
   < Content-Length: 0
   < Connection: keep-alive
   < Location: https://aws.amazon.com/cloudfront/
   < Cloudfront-Functions: generated-by-CloudFront-Functions
   < X-Cache: FunctionGeneratedResponse from cloudfront
   < Via: 1.1 3035b31bddaf14eded329f8d22cf188c.cloudfront.net (CloudFront)
   < X-Amz-Cf-Pop: PHX50-C2
   < X-Amz-Cf-Id: ULZdIz6j43uGBlXyob_JctF9x7CCbwpNniiMlmNbmwzH1YWP9FsEHg==
   ```