CloudFront (BYOCDN)
Esta configuración enruta el tráfico agéntico (solicitudes de bots de IA y agentes de usuario LLM) al servicio de back-end de Edge Optimize (live.edgeoptimize.net). Los visitantes humanos y los bots de SEO se siguen sirviendo desde su origen como de costumbre. Para probar la configuración, una vez completados los ajustes, busque el encabezado x-edgeoptimize-request-id en la respuesta.
Requisitos previos
Antes de establecer la configuración de CloudFront, asegúrese de que dispone de lo siguiente:
- Una distribución existente de CloudFront que atiende su sitio web.
- Permisos IAM de AWS para crear funciones de Lambda, funciones de IAM, distribuciones de CloudFront y directivas de caché.
- Haber recuperado una clave de API de Edge Optimize de la IU de LLM Optimizer. Para ver los pasos, consulte Recuperar las claves de API.
- (Opcional) Para probar el enrutamiento de ensayo, consulte Clave de API de ensayo.
Paso 1: Crear origen de Edge Optimize
Navegación: Consola de AWS > CloudFront > Distribuciones > [Su distribución] > Pestaña Orígenes
-
Haga clic en Crear origen.
-
Configure el origen:
- Dominio de origen:
live.edgeoptimize.net - Nombre:
EdgeOptimize_Origin
- Dominio de origen:
-
Deje los demás campos con sus valores predeterminados.
-
Añada encabezados personalizados:
table 0-row-2 1-row-2 2-row-2 3-row-2 Encabezado Value x-edgeoptimize-api-keySu clave de API x-forwarded-hostwww.example.comx-edgeoptimize-fetcher-keySu clave de recuperación (solo en el caso de la inclusión en la lista de permitidos de WAF) Reemplace
www.example.compor su dominio real del sitio web yYour API keypor la clave de API de Edge Optimize proporcionada por su representante de Adobe. -
Haga clic en Crear origen.
Paso 2: Crear función de solicitud del visor
Navegación: Consola de AWS > CloudFront > Funciones
-
Haga clic en Crear función.
-
Configuración de:
- Nombre:
edgeoptimize-routing - Tiempo de ejecución:
cloudfront-js-2.0
- Nombre:
-
Reemplace el código predeterminado por el código de viewer-request.js.
Antes de publicar, personalice los siguientes valores del código:
YOUR_DEFAULT_ORIGIN: reemplace por el nombre de su origen predeterminado existente (que se encuentra en CloudFront > Distribuciones > [Su distribución] > pestaña Orígenes).TARGETED_PATHS: establézcalo ennullpara que se aplique a todas las páginas HTML, o establézcalo en una matriz de rutas específicas, por ejemplo,['/', '/products', '/about'].
-
Haga clic en Guardar cambios > Publicar función.
Paso 3: Configurar la directiva de caché
Navegación: Consola de AWS > CloudFront > Distribuciones > [Su distribución] > Comportamientos
Verifique la directiva de la caché actualmente asociada a su comportamiento. Haga clic en Editar en su comportamiento y examine la sección Clave de caché y solicitudes de origen para identificar su escenario:
- Escenario A (heredado): verá un botón de opción etiquetado como Configuración de caché heredada seleccionado. No hay un menú desplegable para el nombre de la directiva; en su lugar, verá la configuración de TTL y del encabezado en línea.
- Escenario B (directiva personalizada): Verá Directiva de caché seleccionada con un nombre de directiva que usted o su equipo crearon (no una directiva proporcionada por AWS).
- Escenario C (directiva administrada): Verá Directiva de caché seleccionada con un nombre proporcionado por AWS como
CachingOptimized,CachingDisabledoCachingOptimizedForUncompressedObjects; no se pueden editar.
Escenario A: Configuración de caché heredada
Si su comportamiento utiliza la configuración de caché heredada:
-
En Clave de caché y solicitudes de origen, verá Configuración de caché heredada seleccionada.
-
Añada
x-edgeoptimize-configyx-edgeoptimize-urla la lista de elementos permitidos Encabezados:- Seleccione Incluir los siguientes encabezados en el menú desplegable.
- Añada
x-edgeoptimize-configyx-edgeoptimize-url.
Si ya tiene seleccionado Todo en el menú desplegable Encabezados, omita este paso: todos los encabezados se reenviarán automáticamente al origen.
-
Compruebe la configuración del almacenamiento en caché de objetos:
- Si se establece en Personalizar, se recomienda establecer TTL mínimo en
0. Sin embargo, si su TTL mínimo actual ya es muy corto, es posible que no necesite cambiarlo. - Si se establece en Usar encabezados de caché de origen, no será necesario realizar ningún cambio.
- Si se establece en Personalizar, se recomienda establecer TTL mínimo en
-
Haga clic en Guardar cambios.
Escenario B: No heredado con una directiva de caché personalizada
Si su comportamiento ya utiliza una directiva de caché personalizada (una que usted creó, no una directiva administrada por AWS):
Navegación: Consola de AWS > CloudFront > Políticas > Caché
-
Haga clic en su directiva existente.
-
Haga clic en Editar.
-
Se recomienda establecer TTL mínimo en
0. Sin embargo, si su TTL mínimo actual ya es muy corto, es posible que no necesite cambiarlo.
-
En Configuración de clave de caché > Encabezados, junto con sus inclusiones existentes, añada
x-edgeoptimize-configyx-edgeoptimize-url.
-
Haga clic en Guardar cambios.
Escenario C: No heredado con una directiva de caché administrada (AWS)
Si su comportamiento utiliza una directiva de caché administrada por AWS (por ejemplo, CachingOptimized), no podrá editarla. Debe crear una nueva directiva de caché personalizada que replique la configuración de la directiva administrada existente y añada los encabezados de Edge Optimize encima.
Parte 1: Anotar la configuración actual de la directiva de caché administrada
Navegación: Consola de AWS > CloudFront > Directivas > Caché
-
Busque y haga clic en la directiva de caché administrada actualmente asociada a su comportamiento (por ejemplo,
CachingOptimized). -
Anote todas las configuraciones existentes:
- TTL mínimo, TTL máximo, TTL predeterminado
- Encabezados incluidos en la clave de caché
- Cookies incluidas en la clave de caché
- Cadenas de consulta incluidas en la clave de caché
- Compatibilidad con la compresión (Gzip, Brotli)
Parte 2: Crear una nueva directiva de caché personalizada con la misma configuración + configuración de Edge Optimize
Navegación: Consola de AWS > CloudFront > Directivas > Caché
-
Haga clic en Crear directiva de caché.
-
Nombre:
edgeoptimize-cache
-
Repita toda la configuración mencionada en la parte 1, con las siguientes modificaciones:
- Se recomienda establecer TTL mínimo en
0. Sin embargo, si su TTL mínimo actual ya es muy corto, es posible que no necesite cambiarlo.
- En Configuración de clave de caché > Encabezados, incluya todo lo que tenía la directiva administrada, además de añadir
x-edgeoptimize-configyx-edgeoptimize-url.
- Se recomienda establecer TTL mínimo en
-
Haga clic en Crear.
-
Vuelva al comportamiento y asocie la directiva recién creada:
Navegación: Consola de AWS > CloudFront > Distribuciones > [Su distribución] > Comportamientos
- Edite su comportamiento.
- En Solicitudes de origen y clave de caché, seleccione Directiva de caché.
- Elija
edgeoptimize-cacheen la lista desplegable. - Haga clic en Guardar cambios.
Paso 4: Crear la función Lambda@Edge (solicitud de origen y respuesta)
us-east-1 (Virginia del norte). Se trata de un requisito de AWS. Aunque la función se crea en us-east-1, AWS la replica automáticamente en todas las ubicaciones perimetrales de CloudFront en todo el mundo, de modo que se ejecute en la ubicación perimetral más cercana al visor. Asegúrese de que se encuentra en la región us-east-1 de la consola de AWS antes de continuar.Crear la función Lambda
Navegación: Consola de AWS > Lambda
-
Haga clic en Crear función.
-
Seleccione Autor desde cero.
-
Configuración de:
- Nombre de función:
edgeoptimize-origin - Deje los demás campos con sus valores predeterminados.
- Nombre de función:
-
Haga clic en Crear función.
-
En el editor de código, reemplace el código predeterminado por el código de origin-request-response.js.
-
Haga clic en Implementar para guardar el código.
-
Anote el nombre de función de ejecución que aparece en Configuración > Permisos (por ejemplo,
edgeoptimize-origin-role-xxxxx). Esto es necesario en los pasos siguientes.
Actualizar la directiva de confianza de la función de ejecución
La función creada automáticamente solo confía en lambda.amazonaws.com. Para Lambda@Edge, también debe añadir edgelambda.amazonaws.com.
Navegación: Consola de AWS > IAM > Funciones > [su función del paso anterior] > pestaña Relaciones de confianza
-
Haga clic en Editar directiva de confianza.
-
Reemplace la directiva por el contenido de trust-policy.json.
-
Haga clic en Actualizar directiva.
edgelambda.amazonaws.com es obligatorio para Lambda@Edge. Sin él, CloudFront no puede invocar la función en ubicaciones perimetrales.Corregir la directiva de permisos de registros de CloudWatch
La función creada automáticamente viene con una directiva AWSLambdaBasicExecutionRole configurada para Lambda normal, que tiene la región y el nombre de grupo de registro incorrectos para Lambda@Edge. Tiene que actualizarla.
Navegación: Consola de AWS > IAM > Funciones > [su función] > pestaña Permisos > haga clic en el nombre de la directiva adjunta (por ejemplo, AWSLambdaBasicExecutionRole-xxxx)
-
Haga clic en Editar.
-
Reemplace la directiva por el contenido de cloudwatch-policy.json.
En el JSON, reemplace
ACCOUNT_IDpor su ID de cuenta de AWS real (que se encuentra en la esquina superior derecha de la consola de AWS) yFUNCTION_NAMEpor el nombre de su función Lambda (por ejemplo,edgeoptimize-origin). -
Haga clic en Guardar cambios.
*: Lambda@Edge se ejecuta en la ubicación perimetral más cercana al visor, por lo que los registros se escriben en CloudWatch en la región de la ubicación perimetral (por ejemplo, ap-south-1, eu-west-1), no necesariamente en us-east-1. El grupo de registros usa un nombre con prefijo de región: /aws/lambda/us-east-1.FUNCTION_NAME, donde us-east-1 es siempre la región de inicio de la función.Publicar una versión
-
En la página de funciones, haga clic en Acciones (parte superior derecha) > Publicar nueva versión.
-
Añada una descripción.
-
Haga clic en Publicar.
-
Copie o anote el ARN de función; lo necesitará en el siguiente paso.
Paso 5: Asociar las funciones y la directiva de caché con el comportamiento
Navegación: Consola de AWS > CloudFront > Distribuciones > [Su distribución] > Comportamientos
-
Edite su comportamiento.
-
Si creó una nueva directiva de caché en el paso 3 (escenario C), establezca Directiva de caché en
edgeoptimize-cache.
-
En Asociaciones de funciones, configure:
- Solicitud del visor:
edgeoptimize-routing - Solicitud de origen: ARN de función con versiones del paso 4 (en Publicar una versión)
- Respuesta de origen: ARN de función con versiones del paso 4 (en Publicar una versión)
- Solicitud del visor:
-
Haga clic en Guardar cambios.
Permitir Optimizar en Edge mediante reglas de cortafuegos (opcional)
Si su CDN utiliza un WAF o un Bot Manager:
-
Lista de permitidos el agente de usuario
*AdobeEdgeOptimize/1.0*en su WAF o Administrador de bots para que el servicio Optimizar en Edge pueda recuperar el contenido de origen. -
Si el firewall requiere una verificación adicional más allá del agente de usuario, genere un secreto (por ejemplo,
openssl rand -hex 32) y:- Agregue
x-edgeoptimize-fetcher-keycon el secreto en sus reglas de enrutamiento junto con los otrosx-edgeoptimize-*encabezados. - Agregue una regla de WAF o Bot Manager para permitir solicitudes en las que
x-edgeoptimize-fetcher-keycoincida con el mismo secreto.
- Agregue
-
Optimizar en Edge reenvía este encabezado tal cual: usted es el propietario del ciclo de vida completo de la clave.
Paso 6: Comprobar la configuración
1. Probar el tráfico de bots (debe optimizarse)
Envíe una solicitud con un agente de usuario de bots agéntico. En la primera solicitud, Edge Optimize puede devolver una respuesta proxy (no optimizada) mientras procesa y almacena en caché la página. La puede identificar mediante el encabezado x-edgeoptimize-proxy: 1 de la respuesta.
Simule una solicitud de bot de IA con un agente de usuario agéntico:
curl -svo /dev/null https://www.example.com/page.html \
--header "user-agent: chatgpt-user"
Una respuesta correcta incluye el encabezado x-edgeoptimize-request-id, que confirma que la solicitud se enrutó mediante Edge Optimize:
< HTTP/2 200
< x-edgeoptimize-request-id: 50fce12d-0519-4fc6-af78-d928785c1b85
2. Probar el tráfico humano (NO debería verse afectado)
Simule una solicitud normal de un explorador:
curl -svo /dev/null https://www.example.com/page.html \
--header "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"
La respuesta no debe contener el encabezado x-edgeoptimize-request-id. El contenido de la página y el tiempo de respuesta deben ser idénticos al de antes de habilitar Optimizar en Edge.
3. Cómo diferenciar entre dos escenarios
x-edgeoptimize-request-idx-edgeoptimize-fo1)El estado del enrutamiento de tráfico también se puede comprobar en la interfaz de usuario de LLM Optimizer. Vaya a Configuración del cliente y seleccione la pestaña Configuración de CDN.
4. Verificar que los registros fluyan correctamente
Después de ejecutar las solicitudes de prueba anteriores, compruebe que se escriben registros tanto para la función CloudFront como para la función Lambda@Edge.
Registros de funciones de CloudFront (edgeoptimize-routing)
Navegación: Consola de AWS > CloudWatch > Grupos de registros (en us-east-1 o en la región donde está configurada su distribución de CloudFront)
-
Busque un grupo de registros denominado
/aws/cloudfront/function/edgeoptimize-routing. -
Abra el flujo de registro más reciente.
-
Para solicitudes agénticas, deberían aparecer entradas como:
Adding origin group for userAgent: chatgpt-userRouting to Edge Optimize origin for userAgent: chatgpt-user
-
Para las solicitudes que no son agénticas, debería aparecer lo siguiente:
Routing to Default origin for userAgent: ...
También puede marcar la pestaña Métricas en Consola AWS > CloudFront > Funciones > edgeoptimize-routing para ver los recuentos de invocaciones y las tasas de errores.
Registros de Lambda@Edge (edgeoptimize-origin)
us-east-1. Consulte CloudWatch en la región de AWS más cercana al lugar donde ejecutó el comando curl.Navegación: Consola de AWS > CloudWatch > Grupos de registros (asegúrese de que se encuentra en la región correcta)
-
Busque un grupo de registros denominado
/aws/lambda/us-east-1.edgeoptimize-origin. -
Abra el flujo de registro más reciente.
-
Para solicitudes agénticas, deberían aparecer entradas como:
Calling Edge Optimize Origin for agentic requests: ruta principalCalling Default Origin in case of failover for agentic requests: ruta de conmutación por errorFailover Triggered for agentic requests: detección de conmutación por error en origen-respuesta
Si el grupo de registros no está presente, compruebe que los permisos de IAM se actualizaron correctamente en el paso 4. Compruebe también otras regiones de AWS cercanas: la ubicación perimetral que atendió su solicitud puede ser diferente de lo que esperaba.
Solución de problemas
x-edgeoptimize-request-id en la respuesta para las solicitudes agénticasYOUR_DEFAULT_ORIGIN se haya reemplazado correctamente en el código de función de CloudFront (paso 2).x-edgeoptimize-api-key en los encabezados personalizados de origen de Edge Optimize (paso 1).us-east-1.cache-control: no-store0 en la directiva de caché (paso 3). Si el TTL mínimo ya es muy corto, es posible que este no sea el problema.Habilitación y deshabilitación de Optimizar en Edge
La función de Lambda@Edge (edgeoptimize-origin) está asociada a los eventos de solicitud de origen y respuesta de origen del comportamiento de CloudFront. Dado a que se ejecuta en línea en cada solicitud que pasa por ese comportamiento —tanto de personas como agéntica— una interrupción de Lambda@Edge afectará todo el tráfico en directo, no solo a las solicitudes agénticas. Si detecta una interrupción de Lambda@Edge, quite las asociaciones de funciones inmediatamente para restaurar el flujo de tráfico normal a su origen predeterminado.
Cómo detectar una interrupción de Lambda@Edge
- AWS Service Health Dashboard: compruebe el AWS Service Health Dashboard para ver si hay algún incidente activo que afecte a Amazon CloudFront o AWS Lambda. Una interrupción global o regional notificada aquí es la forma más rápida de confirmar que el problema se encuentra en la infraestructura de AWS y no en su configuración.
- Errores de Lambda@Edge: vaya a Consola de AWS > CloudFront > Monitorización >[Su distribución]. Abra la pestaña Errores de Lambda@Edge y revise el gráfico Errores de ejecución para detectar errores de ejecución. Si estos valores son altos, Lambda@Edge podría estar inactivo.
Desvinculación de la función Lambda@Edge
Navegación: Consola de AWS > CloudFront > Distribuciones >[Su distribución] > Comportamientos
-
Haga clic en Editar en su comportamiento.
-
Desplácese hacia abajo hasta la sección Asociaciones de funciones.
-
Establezca las siguientes asociaciones en Ninguna asociación:
table 0-row-2 1-row-2 2-row-2 3-row-2 Evento Cambiar a Solicitud del visor Ninguna asociación Solicitud de origen Ninguna asociación Respuesta de origen Ninguna asociación
-
Haga clic en Guardar cambios.
-
Espere a que finalice la implementación de la distribución de CloudFront. El estado cambia de Implementando a la fecha de última modificación, normalmente en cuestión de minutos.
Una vez implementada, todo el tráfico se dirigirá directamente a su origen predeterminado. No se elimina ninguna configuración; la función Lambda y sus asociaciones se pueden restaurar en cualquier momento.
Volver a vincular la función Lambda@Edge
Navegación: Consola de AWS > CloudFront > Distribuciones >[Su distribución] > Comportamientos
-
Haga clic en Editar en su comportamiento.
-
Desplácese hacia abajo hasta la sección Asociaciones de funciones.
-
Restaure las asociaciones:
table 0-row-2 1-row-2 2-row-2 3-row-2 Evento Establecer en Solicitud del visor edgeoptimize-routing(función CloudFront)Solicitud de origen ARN de Lambda con versión del paso 4 Respuesta de origen ARN de Lambda con versión del paso 4 Use el ARN de la función con versiones que anotó en el paso 4 (en Publicar una versión).
-
Haga clic en Guardar cambios.
-
Espere a que la distribución termine de implementarse y, a continuación, compruebe que las solicitudes agénticas devuelven el encabezado
x-edgeoptimize-request-idtal como se describe en el paso 6.
Para obtener más información sobre Optimizar en Edge, incluidas las oportunidades disponibles, los flujos de trabajo de optimización automática y las preguntas frecuentes, vuelve a Optimizar en la descripción general de Edge.