Al implementar Agentes de IA a Amazon Bedrock Agentcore Runtime (Actualmente en vista previa), los clientes a menudo desean usar nombres de dominio personalizados para crear una experiencia profesional y perfecta.
Por defecto, los agentes de tiempo de ejecución de AgentCore usan puntos finales como https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{EncodedAgentARN}/invocations.
En esta publicación, discutimos cómo transformar estos puntos finales en dominios personalizados fáciles de usar (como https://agent.yourcompany.com) usando Amazon Cloudfront como un proxy inverso. La solución combina Cloudfront, Ruta de Amazon 53y Administrador de certificados de AWS (ACM) para crear una configuración de dominio personalizada segura y escalable que funcione sin problemas con sus agentes existentes.
Beneficios del tiempo de ejecución de Amazon Bedrock Agentcore
Si está construyendo agentes de IA, probablemente haya luchado con los desafíos de alojamiento: gestionar la infraestructura, el manejo de la autenticación, la escala y el mantenimiento de la seguridad. El tiempo de ejecución de Amazon Bedrock Agentcore ayuda a abordar estos problemas.
Amazon Bedrock AgentCore Runtime es marco agnóstico; puedes usarlo con Langgraph, Crewai, Agentes de hiloso agentes personalizados que ha construido desde cero. Admite tiempos de ejecución extendidos hasta 8 horasperfecto para tareas de razonamiento complejas que las funciones tradicionales sin servidor no pueden manejar. Cada sesión de usuario se ejecuta en su propia microvm aislada, proporcionando seguridad que es crucial para las aplicaciones empresariales.
El modelo de precios basado en el consumo significa que solo paga por lo que usa, no por lo que provoca. Y a diferencia de otras soluciones de alojamiento, el tiempo de ejecución de Amazon Bedrock Agentcore incluye autenticación incorporada y observabilidad especializada para agentes de IA fuera de la caja.
Beneficios de los dominios personalizados
Cuando se usa Amazon Bedrock AgentCore Runtime con Autorización abierta (OAuth) Autenticación, sus aplicaciones realizan solicitudes HTTPS directas al punto final del servicio. Aunque esto funciona, los dominios personalizados ofrecen varios beneficios:
- Marca personalizada -Aplicaciones del lado del cliente (navegadores web, aplicaciones móviles) muestran su dominio de marca en lugar de detalles de infraestructura de AWS en solicitudes de red
- Mejor experiencia de desarrollador – Los equipos de desarrollo pueden usar puntos finales memorables y de marca en lugar de copiar y pegar puntos finales de largos AWS a través de las bases y configuraciones de código
- Mantenimiento simplificado – Los dominios personalizados hacen que sea sencillo administrar puntos finales al implementar múltiples agentes o actualizar configuraciones en todos los entornos
Descripción general de la solución
En esta solución, utilizamos CloudFront como un proxy inverso para transformar las solicitudes de su dominio personalizado en las llamadas de API de tiempo de ejecución de Amazon Bedrock AgentCore. En lugar de usar el punto final predeterminado, sus aplicaciones pueden hacer solicitudes a una URL fácil de usar como https://agent.yourcompany.com/.
El siguiente diagrama ilustra la arquitectura de la solución.
El flujo de trabajo consta de los siguientes pasos:
- Una aplicación de cliente se autentica con Amazon Cognito y recibe un token de portador.
- El cliente realiza una solicitud HTTPS a su dominio personalizado.
- La ruta 53 resuelve la solicitud DNS a CloudFront.
- CloudFront reenvía la solicitud autenticada al agente de tiempo de ejecución de Amazon Bedrock.
- El agente procesa la solicitud y devuelve la respuesta a través de la misma ruta.
Puede usar la misma distribución de CloudFront para servir tanto a su aplicación frontend como a los puntos finales del agente de backend, evitando Compartir recursos de origen cruzado (CORS) problemas porque todo se origina en el mismo dominio.
Requisitos previos
Para seguir este tutorial, debe tener lo siguiente en su lugar:
Aunque el tiempo de ejecución de Amazon Bedrock Agentcore puede estar en otro Regiones AWS apoyadasCloudFront requiere que los certificados SSL estén en el us-east-1 Región.
Puede elegir entre las siguientes opciones de dominio:
- Use un dominio existente – Agregue un subdominio como
agent.yourcompany.com - Registre un nuevo dominio – Use la ruta 53 para registrar un dominio si no tiene uno
- Use la URL predeterminada desde CloudFront – No se requiere registro o configuración de dominio
Elija la tercera opción si desea probar la solución rápidamente antes de configurar un dominio personalizado.
Crear un agente con autenticación entrante
Si ya tiene un agente implementado con la autenticación OAuth, puede omitir a la siguiente sección para configurar el dominio personalizado. De lo contrario, siga estos pasos para crear un nuevo agente usando Amazon Cognito como su proveedor de OAuth:
- Cree un nuevo directorio para su agente con la siguiente estructura:
- Crear el código del agente principal en
agent_example.py:
- Agregar dependencias a
requirements.txt:
- Ejecute los siguientes comandos para crear un usuario de usuario de Amazon Cognito y probar el usuario:
- Implemente el agente utilizando la interfaz de línea de comandos de bedrock de Amazon (CLI) proporcionada por el kit de herramientas de inicio:
Tome nota de su agente Nombre de recursos de Amazon (ARN) de su agente después de la implementación. Necesitará esto para la configuración de dominio personalizado.
Para ejemplos y detalles adicionales, ver Autenticar y autorizar con autenticación entrante y autora de salida.
Configurar la solución de dominio personalizado
Ahora implementemos la solución de dominio personalizado utilizando el AWS CDK. Esta sección le muestra cómo crear la distribución de CloudFront que proxen sus solicitudes de dominio personalizadas a los puntos finales de tiempo de ejecución de Amazon Bedrock Agentcore.
- Cree un nuevo directorio e inicialice un proyecto AWS CDK:
- Codifique el agente ARN y prepare la configuración de origen de CloudFront:
Si su aplicación frontend se ejecuta en un dominio diferente al punto final de su agente, debe configurar los encabezados CORS. Esto es común si su frontend está alojado en un dominio diferente (por ejemplo, https://app.yourcompany.com vocación https://agent.yourcompany.com), o si se está desarrollando localmente (por ejemplo, http://localhost:3000 Llamar al punto final de su agente de producción).
- Para manejar los requisitos de CORS, cree una Cloudfront Política de encabezados de respuesta:
- Cree una distribución de CloudFront para actuar como un proxy inverso para los puntos finales de su agente:
Colocar cache_policy=CachePolicy.CACHING_DISABLED Para asegurarse de que las respuestas de su agente permanezcan dinámicas y no se almacenen en caché por CloudFront.
- Si está utilizando un dominio personalizado, agregue un certificado SSL y una configuración DNS a su pila:
El siguiente código es la pila completa de AWS CDK que combina todos los componentes:
- Configurar el AWS CDK
apppunto de entrada:
Implementar su dominio personalizado
Ahora puede implementar la solución y verificar que funciona con dominios personalizados y predeterminados. Complete los siguientes pasos:
- Actualizar los siguientes valores en
agentcore_custom_domain_stack.py:- Su Amazon Bedrock Agentcore Runtime Arn
- Su nombre de dominio (si usa un dominio personalizado)
- Su ID de zona alojada (si usa un dominio personalizado)
- Implementar usando el AWS CDK:
Pon a prueba tu punto final
Después de implementar el dominio personalizado, puede probar sus puntos finales utilizando el dominio personalizado o el dominio predeterminado de CloudFront.
Use el siguiente código para probar con su dominio personalizado:
Alternativamente, use el siguiente código para probar con el dominio predeterminado de CloudFront:
Consideraciones
A medida que implementa esta solución en la producción, las siguientes son algunas consideraciones importantes:
- Implicaciones de costos – CloudFront agrega costos para la transferencia de datos y las solicitudes. Revisar Precios de Amazon Cloudfront Para comprender el impacto de sus patrones de uso.
- Mejoras de seguridad – Considere implementar las siguientes medidas de seguridad:
- AWS WAF Reglas para ayudar a proteger contra las exploits web comunes.
- Limitación de tasas para ayudar a prevenir el abuso.
- Geo-Restricciones Si su agente solo debe ser accesible desde regiones específicas.
- Escucha – Habilitar CloudFront registros de acceso y configurar Amazon CloudWatch alarmas para monitorear las tasas de error, la latencia y el volumen de solicitud.
Limpiar
Para evitar costos continuos, elimine los recursos cuando ya no los necesite:
Es posible que deba eliminar manualmente las zonas alojadas de la Ruta 53 y los certificados ACM de sus respectivas consolas de servicio.
Conclusión
En esta publicación, le mostramos cómo crear nombres de dominio personalizados para su agente de ejecución de Amazon Bedrock Agent de agente de ejecución utilizando CloudFront como un proxy inverso. Esta solución proporciona varios beneficios clave: integración simplificada para equipos de desarrollo, dominios personalizados que se alinean con su organización, abstracción de infraestructura más limpia y mantenimiento directo cuando los puntos finales necesitan actualizaciones. Al usar CloudFront como un proxy inverso, también puede servir tanto en los puntos finales de la aplicación frontend y el agente de backend del mismo dominio, evitando los desafíos comunes de CORS.
Le recomendamos que explore esta solución aún más adaptándola a sus necesidades específicas. Es posible que desee mejorarlo con características de seguridad adicionales, configurar el monitoreo o integrarlo con su infraestructura existente.
Para obtener más información sobre la construcción y la implementación de agentes de IA, vea el Guía de desarrolladores de Amazon Bedrock Agentcore. Para configuraciones avanzadas y mejores prácticas con CloudFront, consulte el Documentación de Amazon Cloudfront. Puede encontrar información detallada sobre los certificados SSL en el Documentación del administrador de certificados de AWSy gestión del dominio en el Documentación de Amazon Route 53.
Amazon Bedrock AgentCore está actualmente en vista previa y está sujeto a cambios. El precio estándar de AWS se aplica a los servicios adicionales utilizados, como CloudFront, Route 53 y Certificate Manager.
Sobre los autores
Rahmat Fedayizada es un arquitecto de soluciones senior con el equipo de AWS Energy and Utilities. Trabaja con compañías de energía para diseñar e implementar arquitecturas escalables, seguras y altamente disponibles. Rahmat es un apasionado de traducir requisitos técnicos complejos en soluciones prácticas que generen el valor comercial.
Paras bhuva es gerente senior de arquitectura de soluciones en AWS, donde lidera un equipo de arquitectos de soluciones que ayudan a los clientes de energía a innovar y acelerar su transformación. Habiendo comenzado como arquitecto de soluciones en 2012, Paras es un apasionado de arquitectura de soluciones escalables y organizaciones de construcción centradas en la modernización de aplicaciones e iniciativas de IA.