Compartir por


Crea un agente Agent 365 desplegado en Amazon Web Services (AWS)

Importante

Debe formar parte del programa de versión preliminar de Frontier para obtener acceso anticipado a Microsoft Agent 365. Frontier le conecta directamente con las innovaciones de inteligencia artificial más recientes de Microsoft. Las versiones preliminares de Frontier están sujetas a los términos de vista previa existentes en tus acuerdos con clientes. Dado que estas características siguen en desarrollo, su disponibilidad y funcionalidades pueden cambiar con el tiempo.

Aquí puedes aprender a construir, alojar, registrar y publicar un agente Agent 365 que se ejecute en AWS Elastic Beanstalk, usando la CLI de Agent 365. Microsoft Entra & Graph proporciona la identidad del agente, los permisos y el blueprint, mientras que AWS Elastic Beanstalk proporciona el tiempo de ejecución.

Si lo único que quieres es apuntar tu agente a tu código que está detrás de un endpoint de AWS, solo necesitas este paso: configura para hosting no Azure y luego sigue todos los demás pasos del ciclo de vida de desarrollo del Agente 365.

Objetivos

Aprende a usar Agent 365 y Microsoft 365 como 'plano de control' y:

  • Despliegue en tiempo de ejecución de agentes en AWS Elastic Beanstalk
  • Configure a365.config.json for non-Azure hosting
  • Crear Plano de Agente en Entra ID
  • Configurar OAuth2 + permisos heredables
  • Registrar el punto final de mensajería del Bot Framework apuntando a AWS
  • Crear identidad de agente + usuario de agente
  • (Opcional) Publicar en Microsoft 365 app surfaces
  • Interacciones de prueba de extremo a extremo

Prerrequisitos

Antes de comenzar, asegúrate de que se cumplan los siguientes requisitos previos de Azure / Microsoft 365, AWS y entorno local.

Azure / Microsoft 365 prerequisites

Confirma el acceso a tu usuario de Microsoft Entra e instala las siguientes herramientas para crear identidades, planos y registrar a tu agente.

Requisitos previos de Amazon Web Services (AWS)

Asegúrate de que los siguientes servicios y herramientas de AWS estén configurados para desplegar y gestionar tu entorno Elastic Beanstalk.

Requisitos previos para el entorno del desarrollo local

Instala y configura las siguientes herramientas localmente para construir, ejecutar y desplegar el agente.

Crea y despliega un agente .NET

Las siguientes instrucciones describen cómo crear un agente mínimo que:

  • Responde a GET /
  • Acepta actividades del Marco Bot en POST /api/messages

Crear directorio de proyectos

mkdir aws-a365-agent
cd aws-a365-agent

Inicializar el proyecto .NET

Para agilizar tu experiencia, utilizamos una muestra ya preparada. Clona el repositorio de Muestras de Agent365 y navega hasta la muestra dotnet\semantic-kernel\sample-agent .

El ejemplo Semantic Kernel Agent - C#/.NET incluye:

  • Una API web central mínima ASP.NET
  • Manejador de mensajes del Bot Framework en /api/messages
  • Punto final de comprobación de salud en /
  • Integración del Kernel Semántico para capacidades de IA

Navega y dotnet\semantic-kernel\sample-agent verifica que el proyecto se construya con éxito:

dotnet restore
dotnet build

Configurar modelo

Sigue las instrucciones del Paso 2: Configuración del LLM para configurar el proyecto usando tu clave Open API.

Prueba localmente (opcional)

  1. Antes de desplegarte en AWS, prueba tu agente localmente:

    # Run the application
    dotnet run
    
  2. Prueba los puntos finales en otro terminal:

    # Test agent endpoint locally
    curl http://localhost:3978
    
  3. Pulsa Ctrl+C para detener el servidor local.

Compilación e implementación

Elige la opción que prefieras para construir y desplega esta aplicación de ejemplo:

Opción A: Compilar y desplegar desde Visual Studio

Utiliza el AWS Toolkit para Visual Studio para publicar la app en Elastic Beanstalk con un asistente guiado.

  1. En el Explorador de Soluciones, haz clic derecho en tu proyecto

  2. Seleccionar Publicar en AWS Elastic Beanstalk

  3. Sigue el Asistente de Despliegue de Hadías Mágicas:

    • Elige tu perfil de credenciales AWS
    • Seleccionar región (por ejemplo, us-east-1)
    • Seleccionar Plataforma (.NET Core on Linux)
    • Configurar la configuración del entorno
  4. Seleccionar Despliegue

El asistente construye, empaqueta y despliega tu aplicación en AWS.

Opción B: Compilar y desplegar en AWS Elastic Beanstalk con CLI

Utiliza la CLI de Elastic Beanstalk para empaquetar y desplegar el agente .NET en un entorno Amazon Linux 2 de 64 bits; asegúrate de que la CLI de AWS/EB esté configurada y que la app se vincule a la PORT variable de entorno establecida por Beanstalk.

  1. Construye y publica tu aplicación .NET:

    # Publish for Linux runtime (AWS Elastic Beanstalk uses Amazon Linux)
    dotnet publish -c Release -o ./publish --runtime linux-x64
    

    Crear procfile con el contenido siguiente

    web: dotnet ./SemanticKernelSampleAgent.dll
    
  2. Inicializa Elastic Beanstalk para .NET. Se te pide que elijas Región y Plataforma:

    eb init
    
  3. Seleccione:

    • Plataforma: 64bit-amazon-linux-2023-v3.7.0-running-.net-8
    • Región: Tu región AWS preferida (por ejemplo: us-east-1)
  4. Crea un paquete de despliegue y despliega:

    cd publish
    zip -r ../deploy.zip .
    cd ..
    eb create aws-a365-agent-env
    eb deploy
    

    Esto hará lo siguiente:

    • Crear una aplicación de Elastic Beanstalk
    • Crea un entorno con un balanceador de carga
    • Despliega tu aplicación
    • Proporciona los recursos necesarios de AWS
  5. Cuando termines, consigue tu punto final de Elastic Beanstal:

    eb status
    

    Apunta tu punto final. Debe tener el siguiente aspecto:

    http://aws-a365-agent-env.us-east-1.elasticbeanstalk.com
    

    Esta es la messagingEndpoint que utiliza la CLI de Agent 365 Dev Tools.

Nota:

Para entornos de producción, configura HTTPS añadiendo un certificado SSL/TLS en Elastic Beanstalk. El Bot Framework requiere HTTPS para los endpoints de producción.

Configure for non-Azure hosting

Crea a365.config.json en tu carpeta de proyecto Elastic Beanstalk ejecutando a365 config init:

Importante

Para alojamiento no Azure, debes:

  • Configura messagingEndpoint la URL de tu Elastic Beanstalk (con /api/messages ruta)
  • Establezca needDeployment en false.

El a365.config.json archivo debería verse algo así:

{
  "tenantId": "YOUR_TENANT_ID",
  "subscriptionId": "YOUR_AZURE_SUBSCRIPTION_ID",
  "resourceGroup": "a365-aws-demo",
  "location": "westus",
  "environment": "prod",

  "messagingEndpoint": "http://aws-a365-agent-env.us-east-1.elasticbeanstalk.com/api/messages",
  "needDeployment": false,

  "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 Meaning
messagingEndpoint Tu URL de Elastic Beanstalk + /api/messages
"needDeployment": false Le dice a CLI: 'Yo alojo mi propio servidor; no despliegue en Azure'
deploymentProjectPath Donde .env se produce el estampado

Agente de construcción 365

Una vez que tengas el código de tu agente ejecutándose contra un endpoint de AWS, sigue los pasos restantes del ciclo de vida de desarrollo del Agente 365 para configurar tu agente del Agente 365.

Verifica el agente de principio a fin

Utiliza estas comprobaciones para confirmar que tu agente alojado en AWS es accesible, recibe actividades del Bot Framework y responde correctamente en las superficies del Agente 365.

Verificar la conectividad de la planta elástica de judías

Envía una solicitud GET a tu endpoint 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.

Consulta los registros de Elastic Beanstalk para ver si llegan mensajes del Bot Framework

Utiliza el registro de Elastic Beanstalk para verificar que tu agente recibe las actividades del Bot Framework y responde correctamente.

eb logs

O transmite registros en tiempo real:

eb logs --stream

Después de que un mensaje llegue a tu agente, verás:

POST 200 /api/messages
Received activity: { ... }

Agente de prueba de superficies del Agente 365

Dependiendo de tu entorno:

  • Sitio de prueba de agentes
  • Equipos (si se publican)
  • Agente Shell
  • Superficies federadas

Ahora puedes enviar mensajes y verificar los registros de tus Elastic Beanstal. Aprende a probar agentes usando el Microsoft Agent 365 SDK y a validar la funcionalidad de tu agente con la herramienta de pruebas Agents Playground

Flujo de trabajo del desarrollador

Una vez completada la configuración, sigue este flujo de trabajo para el desarrollo iterativo:

Desarrollar y probar localmente

Utiliza el modo reloj para un desarrollo rápido con recarga automática:

# Automatically rebuild and restart on file changes
dotnet watch run

Haz tus cambios de código, guarda y prueba localmente antes de desplegar.

Compilar y volver a desplegar en AWS Elastic Beanstalk

Cuando esté listo para desplegar tus 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

Prueba mediante superficies del Agente 365 y monitoriza los registros de Elastic Beanstal:

# Stream logs in real-time
eb logs --stream

Tu identidad, blueprint, endpoint del bot y permisos NO necesitan ser recreados.

Solución de problemas

Utiliza esta sección para diagnosticar y resolver problemas comunes al desplegar y ejecutar un agente Agent 365 en AWS Elastic Beanstalk. Cubre la conectividad y los controles de salud. También aborda la asignación de puertos, errores de compilación y problemas de licencias.

Endpoint de mensajería que no recibe solicitudes

Consulta los siguientes detalles:

  • Tu punto final es exactamente:
    http://<your-app>.elasticbeanstalk.com/api/messages
  • El entorno de tu planta elástica de judías es saludable. Usa el cheque con eb health
  • Tu grupo de seguridad permite tráfico entrante HTTP/HTTPS
  • No existen reglas de firewall ni restricciones de VPC

Problemas de salud en la aplicación

Consulta la salud ambiental:

eb health --refresh

Consulta registros detallados:

eb logs

Problemas con la asignación de puertos

Asegúrate de que tu aplicación escuche en el puerto especificado por la PORT variable de entorno (Elastic Beanstalk lo configura automáticamente).

Problemas de compilación o ejecución en .NET

Comprueba errores de compilación usando estos comandos:

# Clean and rebuild
dotnet clean
dotnet build --verbosity detailed

Verificar la versión de .NET:

dotnet --version
dotnet --list-sdks

Revisa si hay problemas con el paquete:

# List installed packages
dotnet list package

# Update packages
dotnet restore --force

Fallo en la cesión de licencias

Asigna manualmente una licencia válida de Microsoft 365, o utiliza una ruta de usuario sin licencia si es permitida.

Obtener ayuda

Más opciones de ayuda

Considera lo siguiente para encontrar ayuda: