Teilen über


Bauen Sie einen Agent 365-Agenten, der in Amazon Web Services (AWS) installiert wird

Von Bedeutung

Sie müssen Teil des Frontier-Vorschauversionsprogramms sein, um Vorabzugriff auf Microsoft Agent 365 zu erhalten. Frontier verbindet Sie direkt mit den neuesten KI-Innovationen von Microsoft. Frontier-Vorschauversionen unterliegen den bestehenden Vorschauversionsbedingungen Ihrer Kundenvereinbarungen. Da sich diese Funktionen noch in der Entwicklung befinden, können sich ihre Verfügbarkeit und Merkmale im Laufe der Zeit ändern.

Hier können Sie lernen, wie man einen Agent-365-Agenten auf AWS Elastic Beanstalk erstellt, hostet, registriert und veröffentlicht, mithilfe der Agent 365 CLI. Microsoft Entra & Graph stellt die Agentenidentität, Berechtigungen und den Blueprint bereit, während AWS Elastic Beanstalk die Laufzeit bereitstellt.

Wenn Sie Ihren Agenten nur auf Ihren Code verweisen möchten, der sich hinter einem AWS-Endpunkt befindet, benötigen Sie nur diesen Schritt: Konfigurieren Sie für Nicht-Azure-Hosting und folgen Sie dann allen anderen Schritten aus dem Agent 365 Development Lifecycle.

Ziele

Lernen Sie, wie Sie Agent 365 und Microsoft 365 als 'Kontrollebene' verwenden und:

  • Agent-Runtime auf AWS Elastic Beanstalk bereitstellen
  • Configure a365.config.json for non-Azure hosting
  • Agent Blueprint in Entra ID erstellen
  • Konfigurieren Sie OAuth2 + vererbbare Berechtigungen
  • Register Bot Framework Messaging-Endpunkt zeigt auf AWS
  • Agenten-Identität erstellen + Agent-Nutzer
  • (Optional) Veröffentlichen auf Microsoft 365 App-Oberflächen
  • Testwechselwirkungen End-to-End-Verfahren

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen für Azure / Microsoft 365, AWS und lokale Umgebungen erfüllt sind.

Azure / Microsoft 365 prerequisites

Bestätigen Sie Ihren Microsoft Entra-Tenant-Zugriff und installieren Sie die folgenden Tools, um Identitäten, Baupläne zu erstellen und Ihren Agenten zu registrieren.

Amazon Web Services (AWS)-Voraussetzungen

Stellen Sie sicher, dass die folgenden AWS-Dienste und -Tools eingerichtet sind, um Ihre Elastic Beanstalk-Umgebung bereitzustellen und zu verwalten.

Voraussetzungen für das lokale Entwicklungsumfeld

Installieren und konfigurieren Sie die folgenden Tools lokal, um den Agenten zu erstellen, auszuführen und bereitzustellen.

Erstellen und deployen Sie einen .NET-Agenten

Die folgenden Anweisungen beschreiben, wie man einen minimalen Agenten erstellt, der:

  • Antwortet auf GET /
  • Akzeptiert Bot-Framework-Aktivitäten auf POST /api/messages

Projektverzeichnis erstellen

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

Initialisieren Sie das .NET-Projekt

Um Ihre Erfahrung zu optimieren, verwenden wir eine bereits vorbereitete Stichprobe. Klone das Agent365 Samples-Repository und navigiere zum dotnet\semantic-kernel\sample-agent sample.

Die Semantic Kernel Sample Agent - C#/.NET-Stichprobe umfasst:

  • Eine minimale ASP.NET Core Web API
  • Bot Framework-Nachrichtenhandler bei /api/messages
  • Endpunkt der Gesundheitsprüfung bei /
  • Integration des semantischen Kernels für KI-Fähigkeiten

Navigieren Sie zu dotnet\semantic-kernel\sample-agent und überprüfen Sie, ob das Projekt erfolgreich gebaut wird:

dotnet restore
dotnet build

Modell konfigurieren

Befolgen Sie die Anweisungen in Schritt 2: LLM-Konfiguration, um das Projekt mit Ihrem Open-API-Schlüssel zu konfigurieren.

Lokal testen (optional)

  1. Teste vor der Bereitstellung bei AWS deinen Agenten lokal:

    # Run the application
    dotnet run
    
  2. Teste die Endpunkte in einem anderen Terminal:

    # Test agent endpoint locally
    curl http://localhost:3978
    
  3. Drücke, Ctrl+C um den lokalen Server zu stoppen.

Erstellen und Bereitstellen

Wählen Sie die Option, die Sie bevorzugen, um diese Beispielanwendung zu bauen und bereitzustellen:

Option A: Bauen und deployen aus Visual Studio

Verwenden Sie das AWS Toolkit für Visual Studio, um die App mit einem geführten Assistenten auf Elastic Beanstalk zu veröffentlichen.

  1. Im Solution Explorer klicke mit der rechten Maustaste auf dein Projekt

  2. Wählen Sie Veröffentlichen in AWS Elastic Beanstalk aus

  3. Folgen Sie dem Bohnenstängel-Deployment-Wizard:

    • Wählen Sie Ihr AWS-Anmeldeprofil
    • Region auswählen (zum Beispiel, us-east-1)
    • Plattform auswählen (.NET Core on Linux)
    • Umgebungseinstellungen konfigurieren
  4. Auswählen Deploy

Der Assistent erstellt, paketiert und bereitet deine Anwendung auf AWS aus.

Option B: Bauen und deployen Sie auf AWS Elastic Beanstalk mit CLI

Verwenden Sie die Elastic Beanstalk CLI, um den .NET-Agenten in einer 64-Bit-Amazon Linux 2-Umgebung zu paketieren und bereitzustellen; stellen Sie sicher, dass AWS CLI/EB CLI konfiguriert sind und die App an die PORT von Beanstalk gesetzte Umgebungsvariable bindet.

  1. Erstellen und veröffentlichen Sie Ihre .NET-Anwendung:

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

    Erstellen Sie Procfile mit untenstehenden Inhalten

    web: dotnet ./SemanticKernelSampleAgent.dll
    
  2. Initialisieren Sie Elastic Beanstalk für .NET. Sie werden aufgefordert, Region und Plattform auszuwählen:

    eb init
    
  3. Wählen Sie Folgendes aus:

    • Plattform: 64bit-amazon-linux-2023-v3.7.0-running-.net-8
    • Region: Ihre bevorzugte AWS-Region (zum Beispiel: us-east-1)
  4. Erstellen Sie ein Bereitstellungspaket und bereitstellen Sie ein:

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

    Dies bewirkt Folgendes:

    • Erstellen Sie eine Elastic Beanstalk-Anwendung
    • Erstellen Sie eine Umgebung mit einem Load Balancer
    • Stellen Sie Ihre Anwendung bereit
    • Bereitstellung notwendiger AWS-Ressourcen
  5. Wenn Sie fertig sind, erhalten Sie Ihr Elastic Beanstalk-Endpunkt:

    eb status
    

    Notieren Sie Ihren Endpunkt. Das sollte in etwa so aussehen:

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

    Dies wird messagingEndpoint von der Agent 365 Dev Tools CLI verwendet.

Hinweis

Für Produktionsumgebungen konfigurieren Sie HTTPS, indem Sie ein SSL/TLS-Zertifikat in Elastic Beanstalk hinzufügen. Das Bot Framework benötigt HTTPS für Produktionsendpunkte.

Configure for non-Azure hosting

Erstellen a365.config.json Sie in Ihrem Elastic Beanstalk-Projektordner, indem Sie ausführen a365 config init:

Von Bedeutung

Für Nicht-Azure-Hosting musst du:

  • Setze messagingEndpoint deine Elastic Beanstalk-URL (mit /api/messages Pfad)
  • Legen Sie needDeployment auf false fest.

Die Akte a365.config.json sollte ungefähr so aussehen:

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

Die folgende Tabelle fasst wichtige Konfigurationsfelder und deren Zweck zusammen.

Feld Bedeutung
messagingEndpoint Deine Elastic Beanstalk URL + /api/messages
"needDeployment": false Sagt zu CLI: 'Ich hoste meinen eigenen Server; don't deploy to Azure'
deploymentProjectPath Wo .env das Stempeln stattfindet

Build Agent 365 Agent

Sobald Ihr Agentencode an einem AWS-Endpunkt läuft, folgen Sie den verbleibenden Schritten aus dem Entwicklungszyklus von Agent 365 , um Ihren Agent-365-Agenten einzurichten.

Verifizieren Sie den Agenten von Anfang bis Ende

Nutzen Sie diese Prüfungen, um sicherzustellen, dass Ihr AWS-gehosteter Agent erreichbar ist, Bot-Framework-Aktivitäten empfängt und korrekt auf Agent-365-Oberflächen reagiert.

Verifizieren Sie die Verbindung der elastischen Bohnenstängel

Senden Sie eine GET-Anfrage an Ihren Elastic Beanstalk-Endpunkt.

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

Die Anfrage sollte folgende Nachricht zurückgeben:

AWS Agent is running.

Überprüfen Sie die Elastic Beanstalk-Protokolle auf eingehende Bot-Framework-Nachrichten

Nutzen Sie Elastic Beanstalk Logging, um zu überprüfen, dass Ihr Agent Bot-Framework-Aktivitäten empfängt und korrekt reagiert.

eb logs

Oder Stream-Logs in Echtzeit:

eb logs --stream

Nachdem eine Nachricht Ihren Agenten erreicht hat, sehen Sie:

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

Testmittel von Agent-365-Oberflächen

Je nach Umgebung:

  • Agents Playground
  • Teams (falls veröffentlicht)
  • Agent Shell
  • Föderierte Flächen

Sie können jetzt Nachrichten senden und Ihre Elastic Beanstalk-Protokolle verifizieren. Lernen Sie, wie Sie Agenten mit dem Microsoft Agent 365 SDK testen und die Funktionalität Ihres Agenten mit dem Testwerkzeug Agents Playground validieren können.

Entwickler-Arbeitsablauf

Sobald die Einrichtung abgeschlossen ist, folgen Sie diesem Workflow für die iterative Entwicklung:

Entwicklung und Testen lokal

Verwenden Sie den Uhrenmodus für schnelle Entwicklung mit automatischem Nachladen:

# Automatically rebuild and restart on file changes
dotnet watch run

Mach deine Code-Änderungen, speichere und teste lokal, bevor du es bereitstellst.

Bauen und neu deployen auf AWS Elastic Beanstalk

Wenn Sie bereit sind, Ihre Änderungen einzusetzen:

# 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

Testen und überwachen

Testen Sie über Agent-365-Oberflächen und überwachen Sie die Elastic Beanstalk-Protokolle:

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

Ihre Identität, Ihr Blueprint, Ihr Bot-Endpunkt und Ihre Berechtigungen müssen NICHT neu erstellt werden.

Problembehandlung

Verwenden Sie diesen Abschnitt, um häufige Probleme beim Deployen und Betrieb eines Agent-365-Agenten auf AWS Elastic Beanstalk zu diagnostizieren und zu beheben. Es deckt Konnektivität und Gesundheitschecks ab. Es adressiert außerdem Portbindungen, Build-Fehler und Lizenzprobleme.

Messaging-Endpunkt empfängt keine Anfragen

Überprüfen Sie die folgenden Details:

  • Dein Endpunkt ist genau:
    http://<your-app>.elasticbeanstalk.com/api/messages
  • Ihr Elastic Beanstalk-Umfeld ist gesund. Verwenden Sie den Scheck mit eb health
  • Ihre Sicherheitsgruppe erlaubt eingehenden HTTP/HTTPS-Verkehr
  • Es gibt keine Firewall-Regeln oder VPC-Einschränkungen

Anwendungsgesundheitsprobleme

Überprüfen Sie die Umweltgesundheit:

eb health --refresh

Sehen Sie sich detaillierte Protokolle an:

eb logs

Portbindungsprobleme

Stellen Sie sicher, dass Ihre Anwendung auf dem Port lauscht, der durch die Umgebungsvariable PORT angegeben ist (Elastic Beanstalk setzt dies automatisch).

.NET-Build- oder Laufzeitprobleme

Überprüfen Sie mit diesen Befehlen auf Build-Fehler:

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

Verifizieren Sie die .NET-Version:

dotnet --version
dotnet --list-sdks

Prüfen Sie auf Paketprobleme:

# List installed packages
dotnet list package

# Update packages
dotnet restore --force

Lizenzübertragung fehlschlägt

Weisen Sie eine gültige Microsoft 365-Lizenz manuell zu oder verwenden Sie einen nicht lizenzierten Benutzerpfad, falls dies unterstützt wird.

Hilfe erhalten

Weitere Hilfeoptionen

Betrachten Sie Folgendes, um Hilfe zu finden: