Byg en Agent 365-agent implementeret i Amazon Web Services (AWS)

Lær, hvordan du bygger, hoster, registrerer og publicerer en Agent 365-agent, der kører på AWS Elastic Beanstalk, ved hjælp af Agent 365 CLI. Microsoft Entra og Graph leverer agentens identitet, tilladelser og blueprint, mens AWS Elastic Beanstalk leverer kørslen.

Hvis du vil pege din agent på din kode, der ligger bag et AWS-slutpunkt, skal du kun udføre følgende trin: Konfigurer til ikke-Azure hosting. Følg derefter alle øvrige trin fra Kom i gang med udvikling af Agent 365.

Mål

Lær at bruge Agent 365 og Microsoft 365 som kontrolplan og:

  • Udrul agentens runtime på AWS Elastic Beanstalk
  • Konfigurer a365.config.json til hosting uden Azure
  • Opret agentblueprint i Entra ID
  • Konfigurer OAuth2 + nedarvede tilladelser
  • Registrer Bot Framework-beskedslutpunkt, der peger på AWS
  • Opret agentidentitet + agentbruger
  • (Valgfrit) Publicer til Microsoft 365 app-flader
  • Test komplette interaktioner

Forudsætninger

Før du begynder, skal du sikre dig, at følgende forudsætninger for Azure / Microsoft 365, AWS og lokale miljøer er opfyldt.

Azure / Microsoft 365-forudsætninger

Bekræft din adgang til din Microsoft Entra-lejer, og installer følgende værktøjer for at oprette identiteter, blueprints og registrere din agent.

Amazon Web Services (AWS) forudsætninger

Sørg for, at følgende AWS-tjenester og -værktøjer er indstillet til at udrulle og administrere dit Elastic Beanstalk-miljø.

Forudsætninger for det lokale udviklingsmiljø

Installer og konfigurer følgende værktøjer lokalt for at bygge, køre og udrulle agenten.

Opret og udrul en .NET-agent

Følgende instruktioner beskriver, hvordan du opretter en minimal agent, der:

  • Responderer på GET /
  • Accepterer Bot Framework-aktiviteter på POST /api/messages

Opret projektmappe

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

Initialiser .NET-projekt

For at gøre oplevelsen nemmere for dig bruger denne artikel et forberedt eksempel. Klon Agent365 Samples-lageret, og gå til eksemplet dotNet\semantic-kernel\sample-agent.

Eksempelagenten Semantic Kernel - C#/.NET indeholder følgende:

  • Et minimalt ASP.NET Core Web API
  • Bot Framework-meddelelseshandler på /api/messages
  • Slutpunkt for tilstandskontrol ved /
  • Semantic Kernel-integration til AI-kapabiliteter

Gå til dotnet\semantic-kernel\sample-agent og verificer, at projektet oprettes succesfuldt:

dotnet restore
dotnet build

Konfigurer model

Følg instruktionerne i Trin 2: LLM-konfiguration for at konfigurere projektet ved at bruge din Open API-nøgle.

Test lokalt (valgfrit)

  1. Før du udruller til AWS, test din agent lokalt:

    # Run the application
    dotnet run
    
  2. Test slutpunkterne i en anden terminal:

    # Test agent endpoint locally
    curl http://localhost:3978
    
  3. Tryk på Ctrl+C for at stoppe den lokale server.

Opbyg, og installer

Vælg den mulighed, du foretrækker til at bygge og udrulle denne eksempelapplikation:

Valgmulighed A: Byg og udrul fra Visual Studio

Brug AWS Toolkit til Visual Studio til at publicere appen til Elastic Beanstalk ved hjælp af en guide.

  1. I Løsningsoversigt, højreklik på dit projekt.

  2. Vælg Publicer til AWS Elastic Beanstalk.

  3. Følg Beanstalk Deployment-guide:

    • Vælg din AWS-legitimationsprofil.
    • Vælg region (f.eks. us-east-1).
    • Vælg platform (.NET Core on Linux).
    • Konfigurer miljøindstillinger.
  4. Vælg Udrul.

Guiden bygger, pakker og udruller programmet til AWS.

Valgmulighed B: Byg og udrul til AWS Elastic Beanstalk med CLI

Brug Elastic Beanstalk CLI til at pakke og udrulle .NET-agenten til et 64-bit Amazon Linux 2-miljø. Sørg for, at AWS CLI og EB CLI er konfigureret. Appen binder til miljøvariablen PORT, som Beanstalk har sat.

  1. Byg og udgiv din .NET-applikation:

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

    Opret profil med følgende indhold.

    web: dotnet ./SemanticKernelSampleAgent.dll
    
  2. Initialiser Elastic Beanstalk for .NET. Du bliver bedt om at vælge region og platform:

    eb init
    
  3. Vælg:

    • Platform: 64bit-amazon-linux-2023-v3.7.0-running-.net-8
    • Region: Din foretrukne AWS-region (for eksempel: us-east-1)
  4. Opret en udrulningspakke og udrul:

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

    Denne kommando:

    • Opretter en elastisk Beanstalk-applikation.
    • Opretter et miljø med en belastningsjustering.
    • Udruller programmet.
    • Klargør nødvendige AWS-ressourcer.
  5. Når du er færdig, skal du hente dit Elastic Beanstalk-slutpunkt:

    eb status
    

    Notér dit slutpunkt. Det burde se cirka således ud:

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

    Dette slutpunkt er messagingEndpoint, der bruges af Agent 365 Dev Tools CLI.

Bemærk!

I produktionsmiljøer skal du konfigurere HTTPS ved at tilføje et SSL/TLS-certifikat i Elastic Beanstalk. Bot Framework kræver HTTPS til produktionsslutpunkter.

Konfigurer for ikke-Azure-hosting

Opret a365.config.json manuelt i din Elastic Beanstalk-projektmappe:

Vigtigt!

Angiv værdien messagingEndpoint til din Elastic Beanstalk-URL med stien /api/messages for ikke-Azure-hosting.

Filen a365.config.json skulle se nogenlunde sådan ud:

{
  "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"
}

Følgende tabel opsummerer vigtige konfigurationsfelter og deres formål.

Felt Betydning
messagingEndpoint Din Elastic Beanstalk-URL-adresse + /api/messages
deploymentProjectPath Hvor .env stempling sker

Byg Agent 365-agent

Når din agentkode kører mod et AWS-slutpunkt, skal du følge de resterende trin fra Kom godt i gang med Agent 365-udvikling for at konfigurere din Agent 365-agent.

Kontrollér agenten fuldt ud.

Brug disse tjek for at bekræfte, at din AWS-hostede Agent 365-agent er tilgængelig, modtager Bot Framework-aktiviteter og svarer korrekt på tværs af Agent 365-overflader.

Verificer Elastic Beanstalk-forbindelsen

Send en GET-anmodning til dit Elastic Beanstalk-slutpunkt.

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

Anmodningen skal returnere denne meddelelse:

AWS Agent is running.

Kontrollér Elastic Beanstalk-logge for Bot Framework-indgående meddelelser

Brug Elastic Beanstalk-logføring til at sikre, at din agent modtager Bot Framework-aktiviteter og svarer korrekt.

eb logs

Eller stream logfiler i realtid:

eb logs --stream

Når din agent modtager en meddelelse, ser du:

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

Testagent fra Agent 365-overflader

Afhængigt af dit miljø kan du teste din agent fra forskellige overflader:

  • Agents Playground
  • Teams (hvis publiceret)
  • Agent Shell
  • Grænseflader i organisationsnetværk

Du kan sende beskeder og kontrollere dine Elastic Beanstalk-logfiler. Lær, hvordan du tester agenter ved hjælp af Microsoft Agent 365 SDK og validerer din agents funktionalitet med testværktøjet Agents Playground.

Udviklerarbejdsproces

Følg denne arbejdsproces for iterativ udvikling, når opsætningen er fuldført:

Udvikl og test lokalt

Brug watch-mode for hurtig udvikling med automatisk genindlæsning:

# Automatically rebuild and restart on file changes
dotnet watch run

Lav dine kodeændringer, gem og test lokalt, før du udruller.

Byg og udrul igen til AWS Elastic Beanstalk

Når du er klar til at udrulle dine ændringer:

# 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

Test og overvåg

Test ved at bruge Agent 365-grænseflader, og overvåg Elastic Beanstalk-logge:

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

Du behøver ikke at genskabe din identitet, blueprint, robotslutpunkt eller tilladelser.

Fejlfinding

Benyt dette afsnit til at diagnosticere og løse almindelige problemer ved udrulning og drift af en Agent 365-agent på AWS Elastic Beanstalk. Den dækker forbindelse og helbredstjek. Den adresserer også portbinding, build-fejl og licensproblemer.

Tip

Agent 365 Fejlfindingsguide indeholder overordnede anbefalinger til fejlfinding, bedste praksis og links til fejlfindingsindhold for hver fase af udviklingslivscyklussen for Agent 365.

Meddelelsesslutpunktet modtager ikke forespørgsler

Tjek følgende oplysninger:

  • Dit slutpunkt er nøjagtigt:
    http://<your-app>.elasticbeanstalk.com/api/messages
  • Dit Elastic Beanstalk-miljø er sundt. Tjek ved at bruge eb health.
  • Din sikkerhedsgruppe tillader indgående HTTP- eller HTTPS-trafik.
  • Der er ingen firewall-regler eller VPC-begrænsninger.

Problemer med programmets tilstand

Tjek miljøets tilstand:

eb health --refresh

Vis detaljerede logge:

eb logs

Portbindingsproblemer

Sørg for, at din applikation lytter på den port, der er angivet af miljøvariablen PORT. Elastic Beanstalk sætter denne værdi automatisk.

.NET build-problemer eller kørselsproblemer

Tjek for build-fejl ved at bruge disse kommandoer:

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

Verificér .NET-versionen:

dotnet --version
dotnet --list-sdks

Tjek for pakkeproblemer:

# List installed packages
dotnet list package

# Update packages
dotnet restore --force

Licenstildeling mislykkes

Tildel manuelt en gyldig Microsoft 365-licens, eller brug en licensfri brugerproces, hvis det understøttes.