Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Descubra cómo compilar, hospedar, registrar y publicar un agente de Agent 365 que se ejecuta en AWS Elastic Beanstalk, usando la CLI de Agent 365. Microsoft Entra y Graph proporcionan la identidad del agente, los permisos y el plano técnico, mientras que AWS Elastic Beanstalk proporciona el tiempo de ejecución.
Si desea apuntar su agente a tu código que se encuentra detrás de un punto de conexión de AWS, solo necesitas el siguiente paso: Configura para hospedaje fuera de Azure. A continuación, siga todos los demás pasos de Comenzar con el desarrollo de Agent 365.
Objetivos
Aprenda a usar Agent 365 y Microsoft 365 como plano de control y:
- Implementar el entorno de ejecución del agente en AWS Elastic Beanstalk
- Configurar
a365.config.jsonpara hospedaje fuera de Azure - Creación de un plano técnico del agente en Entra ID
- Configurar OAuth2 + permisos heredables
- Registrar el punto de conexión de mensajería de Bot Framework apuntando a AWS
- Crear identidad de agente y usuario de agente
- (Opcional) Publicar en superficies de las aplicaciones de Microsoft 365
- Probar interacciones de extremo a extremo
Requisitos previos
Antes de comenzar, asegúrese de que se cumplan los siguientes requisitos previos de Azure / Microsoft 365, AWS y entorno local.
Requisitos previos de Azure / Microsoft 365
Confirme el acceso a su inquilino de Microsoft Entra e instale las siguientes herramientas para crear identidades, plantillas y registrar su agente.
Un inquilino de Microsoft Entra con:
- Permiso o rol para crear aplicaciones y planos técnicos de agentes (Administrador Global o equivalente)
- La pertenencia en el programa de versión preliminar de Frontier para obtener acceso anticipado a Microsoft Agent 365.
- Al menos una licencia de Microsoft 365 disponible para el usuario del agente
Requisitos previos de Amazon Web Services (AWS)
Asegúrese de que los siguientes servicios y herramientas de AWS estén configurados para implementar y administrar su entorno de Elastic Beanstalk.
- Cuenta de AWS con los permisos necesarios
- Acceso a AWS Elastic Beanstalk habilitado
- CLI de AWS instalada y configurada
- CLI de Elastic Beanstalk instalada
Requisitos previos para el entorno de desarrollo local
Instale y configure las siguientes herramientas en su entorno local para compilar, ejecutar e implementar el agente.
Editor de código: use Visual Studio Code o Visual Studio
.NET SDK: Usar .NET 8.0 SDK o posterior
AWS Toolkit: instale esta extensión desde Visual Studio o Visual Studio Code. Inicie sesión usando sus credenciales de Administración de identidad y acceso (IAM).
Acceso a la API de LLM: elija el servicio adecuado en función de la configuración del agente o del proveedor de modelos preferido:
- Clave de la API de OpenAI: obtenga la clave de la API de OpenAI
- Azure OpenAI: cree e implemente un recurso de Azure OpenAI para obtener el punto de conexión y la clave de la API
Crear e implementar un agente .NET
Las siguientes instrucciones describen cómo crear un agente mínimo que:
- Responde a GET
/ - Acepta actividades de Bot Framework en POST
/api/messages
Crear un directorio de proyecto
mkdir aws-a365-agent
cd aws-a365-agent
Inicializar el proyecto .NET
Para agilizar su experiencia, este artículo utiliza una muestra ya preparada. Clonar el repositorio de Agent365 Samples y diríjase al ejemplo dotnet\semantic-kernel\sample-agent.
El agente de ejemplo de Kernel semántico: C#/.NET incluye:
- Una API web mínima de ASP.NET Core
- Controlador de mensajes del Bot Framework en
/api/messages -
Punto de conexión de comprobación de estado en
/ - Integración de Kernel semántico para capacidades de IA
Vaya a dotnet\semantic-kernel\sample-agent y compruebe que el proyecto se compila correctamente:
dotnet restore
dotnet build
Configurar modelo
Sigue las instrucciones en Paso 2: Configuración de LLM para configurar el proyecto usando su clave de API de OpenAI.
Probar localmente (opcional)
Antes de implementar en AWS, pruebe su agente localmente:
# Run the application dotnet runPrueba los puntos de conexión en otro terminal:
# Test agent endpoint locally curl http://localhost:3978Presione
Ctrl+Cpara detener el servidor local.
Compilar e implementar
Seleccione la opción que prefiera para compilar y implementar esta aplicación de ejemplo:
- Opción A: Compilar e implementar desde Visual Studio
- Opción B: Compilar e implementar en AWS Elastic Beanstalk con CLI
Opción A: Compilar e implementar desde Visual Studio
Utilice el AWS Toolkit para Visual Studio para publicar la app en Elastic Beanstalk usando un asistente guiado.
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto.
Seleccione Publicar en AWS Elastic Beanstalk.
Siga el Asistente para implementación de Beanstalk:
- Elija su perfil de credenciales de AWS.
- Seleccione Región (por ejemplo,
us-east-1). - Seleccione Plataforma (
.NET Core on Linux). - Configure la configuración del entorno.
Seleccione Implementar.
El asistente crea, empaqueta e implementa su aplicación en AWS.
Opción B: Compilar e implementar en AWS Elastic Beanstalk con CLI
Utilice la CLI de Elastic Beanstalk para empaquetar e implementar el agente .NET en un entorno de Amazon Linux 2 de 64 bits. Asegúrese de que la CLI de AWX y la CLI de EB estén configuradas. La aplicación se vincula a la variable de entorno PORT establecida por Beanstalk.
Compile y publique su aplicación .NET:
# Publish for Linux runtime (AWS Elastic Beanstalk uses Amazon Linux) dotnet publish -c Release -o ./publish --runtime linux-x64Cree Procfile con el siguiente contenido.
web: dotnet ./SemanticKernelSampleAgent.dllInicialice Elastic Beanstalk para .NET. Se le solicita elegir Región y Plataforma:
eb initSeleccione:
-
Plataforma:
64bit-amazon-linux-2023-v3.7.0-running-.net-8 -
Región: su región preferida de AWS (por ejemplo:
us-east-1)
-
Plataforma:
Cree un paquete de implementación e implemente:
cd publish zip -r ../deploy.zip . cd .. eb create aws-a365-agent-env eb deployEste comando:
- Crea una aplicación Elastic Beanstalk.
- Crea un entorno con un equilibrador de carga.
- Implemente su aplicación.
- Aprovisiona los recursos necesarios de AWS.
Cuando termine, obtenga su punto de conexión de Elastic Beanstalk:
eb statusAnote su punto de conexión. Tendrá una apariencia similar a la siguiente:
http://aws-a365-agent-env.us-east-1.elasticbeanstalk.comEste punto de conexión es el
messagingEndpointutilizado por la CLI de Agent 365 Dev Tools.
Nota
Para entornos de producción, configure HTTPS agregando un certificado SSL/TLS en Elastic Beanstalk. Bot Framework requiere HTTPS para los puntos de conexión de producción.
Configurar para hospedaje fuera de Azure
Cree a365.config.json de forma manual en la carpeta de su proyecto en Elastic Beanstalk:
Importante
Para el hospedaje que no sea de Azure, asigne al valor messagingEndpoint la dirección URL de Elastic Beanstalk, incluyendo la ruta de acceso /api/messages.
El archivo a365.config.json debería ser parecido a lo siguiente:
{
"tenantId": "YOUR_TENANT_ID",
"environment": "prod",
"messagingEndpoint": "http://aws-a365-agent-env.us-east-1.elasticbeanstalk.com/api/messages",
"agentIdentityDisplayName": "MyAwsAgent Identity",
"agentBlueprintDisplayName": "MyAwsAgent Blueprint",
"agentUserDisplayName": "MyAwsAgent User",
"agentUserPrincipalName": "myawsagent@testTenant.onmicrosoft.com",
"agentUserUsageLocation": "US",
"managerEmail": "myManager@testTenant.onmicrosoft.com",
"deploymentProjectPath": ".",
"agentDescription": "AWS-hosted Agent 365 Agent"
}
La siguiente tabla resume los campos de configuración importantes y su propósito.
| Campo | Significado |
|---|---|
messagingEndpoint |
Su URL de Elastic Beanstalk + /api/messages |
deploymentProjectPath |
Donde se realiza el estampado de .env |
Crear agente de Agent 365
Una vez que el código de su agente se haya ejecutado en un punto de conexión de AWS, siga los pasos restantes de la sección Introducción al desarrollo de Agent 365 para configurar su agente de Agent 365.
Comprobar el agente de un extremo a otro
Utilice estas comprobaciones para confirmar que se puede acceder a su agente hospedado en AWS, que recibe actividades de Bot Framework y que responde correctamente en todas las superficies de Agent 365.
Comprobar la conectividad de Elastic Beanstalk
Envíe una solicitud GET a su punto de conexión de Elastic Beanstalk.
curl http://aws-a365-agent-env.us-east-1.elasticbeanstalk.com/
La solicitud debería devolver este mensaje:
AWS Agent is running.
Consultar los registros de Elastic Beanstalk para mensajes entrantes de Bot Framework
Utilice los registros de Elastic Beanstalk para comprobar que su agente está recibiendo actividades de Bot Framework y respondiendo correctamente.
eb logs
O visualice los registros en tiempo real:
eb logs --stream
Una vez que un mensaje llegue a su agente, verá:
POST 200 /api/messages
Received activity: { ... }
Probar agente de las superficies de Agent 365
En función de tu entorno, puede probar su agente desde diferentes superficies:
- Área de juegos de agentes
- Teams (si está publicado)
- Shell de agente
- Superficies federadas
Puede enviar mensajes y comprobar sus registros de Elastic Beanstalk. Aprende cómo probar agentes utilizando el SDK de Microsoft Agent 365 y validar la funcionalidad del agente con la herramienta de pruebas Agents Playground.
Flujo de trabajo del desarrollador
Una vez completada la configuración, siga este flujo de trabajo para el desarrollo iterativo:
Desarrollo y prueba localmente
Utilice el modo de observación para un desarrollo rápido con recarga automática:
# Automatically rebuild and restart on file changes
dotnet watch run
Realice sus cambios de código, guarde y pruebe localmente antes de implementar.
Compilar y volver a implementar en AWS Elastic Beanstalk
Cuando esté listo para implementar los cambios:
# Clean previous builds (optional but recommended)
dotnet clean
# Publish optimized release build
dotnet publish -c Release -o ./publish --runtime linux-x64
# Create deployment package
cd publish
zip -r ../deploy.zip .
cd ..
# Deploy to AWS
eb deploy
Pruebas y supervisión
Realice pruebas utilizando las superficies de Agent 365 y supervise los registros de Elastic Beanstalk:
# Stream logs in real-time
eb logs --stream
No necesita volver a crear su identidad, plano técnico, punto de conexión del bot ni permisos.
Solución de problemas
Utilice esta sección para diagnosticar y resolver problemas comunes al implementar y ejecutar un Agent 365 en AWS Elastic Beanstalk. Abarca la conectividad y los controles de estado. También aborda la asignación de puertos, errores de compilación y problemas de licencias.
Sugerencia
La Guía de solución de problemas de Agent 365 contiene recomendaciones generales, procedimientos recomendados y vínculos a recursos de solución de problemas para cada parte del ciclo de vida del desarrollo de Agent 365.
El punto de conexión de mensajería no está recibiendo solicitudes
Comprueba los siguientes datos:
- Su punto de conexión es exactamente:
http://<your-app>.elasticbeanstalk.com/api/messages - Su entorno de Elastic Beanstalk es correcto. Realice la comprobación usando
eb health. - Su grupo de seguridad permite tráfico HTTP o HTTPS entrante.
- No hay reglas de firewall ni restricciones de VPC.
Problemas de estado de la aplicación
Comprobar el estado del entorno:
eb health --refresh
Ver registros detallados:
eb logs
Problemas de vinculación de puertos
Asegúrese de que su aplicación escuche en el puerto especificado por la variable de entorno PORT. Elastic Beanstalk establece este valor automáticamente.
Problemas de compilación o de tiempo de ejecución en .NET
Compruebe si hay errores de compilación utilizando estos comandos:
# Clean and rebuild
dotnet clean
dotnet build --verbosity detailed
Compruebe la versión de .NET:
dotnet --version
dotnet --list-sdks
Compruebe si hay problemas con los paquetes:
# List installed packages
dotnet list package
# Update packages
dotnet restore --force
Error en la asignación de licencias
Asigne manualmente una licencia válida de Microsoft 365, o utilice una ruta para usuarios sin licencia si está permitido.