Asociación de funciones con distribuciones
Para utilizar una función con una distribución, asocie la función a uno o varios comportamientos de caché en la distribución. Puede asociar una función a varios comportamientos de la caché en varias distribuciones.
Puede asociar una función con cualquiera de los siguientes elementos:
-
Un comportamiento de la caché existente
-
Un nuevo comportamiento de la caché en una distribución existente
-
Un nuevo comportamiento de la caché en una distribución nueva.
Cuando asocia una función a un comportamiento de la caché, debe selecciona un tipo de evento. El tipo de evento determina cuándo CloudFront ejecuta la función.
Puede elegir los siguientes tipos de evento:
-
Solicitud del lector: la función se ejecuta cuando CloudFront recibe una solicitud de un lector.
-
Viewer Response (Respuesta al lector): la función se ejecuta antes de que CloudFront devuelva una respuesta al lector.
No se pueden utilizar tipos de eventos orientados al origen (solicitud de origen y respuesta de origen) con CloudFront Functions. En su lugar, puede utilizar Lambda@Edge. Para obtener más información, consulte Eventos de CloudFront que pueden desencadenar una función de Lambda@Edge.
Antes de asociar una función, debe publicarla en la etapa LIVE
.
Puede asociar una función a una distribución en la consola de CloudFront o con la AWS Command Line Interface (AWS CLI). En el siguiente procedimiento, se muestra cómo asociar una función a un comportamiento existente de la caché.
- Console
-
Asociación de una función a un comportamiento existente de la caché
-
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 desee asociar.
-
En la página Función, seleccione la pestaña Publicar.
-
Elija la función Publicar.
-
Elija Add association. En el cuadro de diálogo que aparece, elija una distribución, un tipo de evento o un comportamiento de caché.
Para el tipo de evento, seleccione cuándo desea que se ejecute esta función:
-
Para guardar la configuración, elija Agregar asociación.
CloudFront asocia la distribución a la función. Espere unos minutos para que la distribución asociada termine de implementarse. Puede seleccionar Ver distribución en la página de detalles de la función para comprobar el progreso.
- CLI
-
Asociación de una función a un comportamiento existente de la caché
-
Abra una ventana de línea de comandos.
-
Introduzca el siguiente comando para guardar la configuración de la distribución cuyo comportamiento de la caché desea asociar a una función. Este comando guarda la configuración de distribución en un archivo llamado dist-config.yaml
. Para utilizar este comando, haga lo siguiente:
-
Reemplace DistributionID
por el ID de la distribución.
-
Ejecute el comando en una línea. En el ejemplo, se proporcionan saltos de línea para que el ejemplo sea más legible.
aws cloudfront get-distribution-config \
--id DistributionID
\
--output yaml > dist-config.yaml
Si el comando se ejecuta correctamente, la AWS CLI no devuelve ninguna salida.
-
Abra el archivo llamado dist-config.yaml
que ha creado. Edite el archivo para realizar los siguientes cambios.
-
Cambie el nombre del campo ETag
a IfMatch
, pero no cambie el valor del campo.
-
En el comportamiento de la caché, busque el objeto llamado FunctionAssociations
. Actualice este objeto para agregar una asociación de función. La sintaxis YAML para una asociación de función se parece al siguiente ejemplo.
-
En el siguiente ejemplo, se muestra un tipo de evento de solicitud del lector (disparador). Para utilizar un tipo de evento de respuesta al lector, reemplace viewer-request
por viewer-response
.
-
Reemplace arn:aws:cloudfront::111122223333:function/ExampleFunction
por el nombre de recurso de Amazon (ARN) de la función que está asociando a este comportamiento de la caché. Para obtener el ARN de la función, puede usar el comando aws cloudfront
list-functions.
FunctionAssociations:
Items:
- EventType: viewer-request
FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
Quantity: 1
-
Después de realizar estos cambios, guarde el archivo.
-
Utilice el siguiente comando para actualizar la distribución y agregue la asociación de función. Para utilizar este comando, haga lo siguiente:
-
Reemplace DistributionID
por el ID de la distribución.
-
Ejecute el comando en una línea. En el ejemplo, se proporcionan saltos de línea para que el ejemplo sea más legible.
aws cloudfront update-distribution \
--id DistributionID
\
--cli-input-yaml file://dist-config.yaml
Cuando el comando se realiza correctamente verá una salida como la siguiente, que describe la distribución que se acaba de actualizar con la asociación de función. La siguiente salida de ejemplo se trunca para que sea más legible.
Distribution:
ARN: arn:aws:cloudfront::111122223333:distribution/EBEDLT3BGRBBW
... truncated ...
DistributionConfig:
... truncated ...
DefaultCacheBehavior:
... truncated ...
FunctionAssociations:
Items:
- EventType: viewer-request
FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
Quantity: 1
... truncated ...
DomainName: d111111abcdef8.cloudfront.net
Id: EDFDVBD6EXAMPLE
LastModifiedTime: '2021-04-19T22:39:09.158000+00:00'
Status: InProgress
ETag: E2VJGGQEG1JT8S
El Status
de la distribución cambia a InProgress
mientras la distribución se vuelve a implementar. Cuando la nueva configuración de distribución llega a una ubicación periférica de CloudFront, esa ubicación periférica comienza a utilizar la función asociada. Cuando la distribución esté completamente implementada, Status
volverá a Deployed
. Esto indica que la CloudFront Function asociada está activa en todas las ubicaciones periféricas de CloudFront en todo el mundo. Esto normalmente dura unos minutos.