Freigeben ü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.

Lernen Sie, wie Sie einen Agent-365-Agenten erstellen, hosten, registrieren und veröffentlichen, der auf AWS Elastic Beanstalk läuft, mithilfe der Agent 365 CLI. Microsoft Entra und Graph stellen die Agentidentität, Berechtigungen und Blueprint bereit, während AWS Elastic Beanstalk die Laufzeit bereitstellt.

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

Ziele

Erfahren Sie, wie Sie Agent 365 und Microsoft 365 als Steuerebene verwenden und:

  • Agent-Runtime auf AWS Elastic Beanstalk bereitstellen
  • Konfigurieren von a365.config.json für das Hosting ohne Azure
  • Agent Blueprint in Entra ID erstellen
  • Konfigurieren Sie OAuth2 + vererbbare Berechtigungen
  • Registrieren Sie den Bot Framework Messaging-Endpunkt, der auf AWS zeigt.
  • Agenten-Identität erstellen + Agent-Nutzer
  • (Optional) Veröffentlichen auf Microsoft 365 App-Oberflächen
  • Interaktionen End-to-End testen

Voraussetzungen

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

voraussetzungen für Azure/Microsoft 365

Bestätigen Sie ihren Microsoft Entra Mandantenzugriff, und installieren Sie die folgenden Tools, um Identitäten, Blueprints zu erstellen und Ihren Agent 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 Bereitstellen eines .NET-Agents

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

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

Projektverzeichnis erstellen

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

Initialisieren .NET Projekts

Um Ihre Erfahrung zu vereinfachen, verwendet dieser Artikel ein bereits vorbereitetes Beispiel. Klone das Agent365 Samples-Repository und gehe zum dotnet\semantic-kernel\sample-agent sample.

Der Semantic Kernel Beispiel-Agent - C#/.NET Muster umfasst:

  • Eine minimale ASP.NET Core Web-API
  • Bot Framework-Nachrichtenhandler bei /api/messages
  • Endpunkt der Gesundheitsprüfung bei /
  • Semantic Kernel Integration für KI-Funktionen

Gehen 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ücken Sie 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: Erstellen und Bereitstellen in Visual Studio

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

  1. Klicken Sie in Solution Explorer mit der rechten Maustaste auf Ihr Projekt.

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

  3. Folgen Sie dem Beanstalk Deployment-Wizard:

    • Wählen Sie Ihr AWS-Anmeldeprofil aus.
    • Wähle Region (zum Beispiel, us-east-1).
    • Wählen Sie "Plattform" (.NET Core on Linux) aus.
    • Konfigurieren Sie die Umgebungseinstellungen.
  4. Klicken Sie auf Bereitstellen.

Der Assistent erstellt, paketiert und stellt Ihre Anwendung auf AWS bereit.

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

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

  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 folgendem Inhalt.

    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 stellen Sie es bereit.

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

    Dieser Befehl:

    • Erstellt eine Elastic Beanstalk-Anwendung.
    • Erstellt eine Umgebung mit einem Load Balancer.
    • Stellt deine Anwendung bereit.
    • Stellt notwendige AWS-Ressourcen bereit.
  5. Wenn Sie fertig sind, erhalten Sie Ihren 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
    

    Dieser Endpunkt 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.

Konfigurieren für Nicht-Azure Hosting

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

Von Bedeutung

Legen Sie für das Hosting ohne Azure die folgenden Werte fest:

  • messagingEndpoint: Ihre Elastic Beanstalk-URL mit dem /api/messages Pfad
  • needDeployment: false

Die Datei 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 CLI mitteilen: "Ich hoste meinen eigenen Server, nicht auf Azure bereitstellen."
deploymentProjectPath Wo .env das Stempeln stattfindet

Build Agent 365 Agent

Nachdem Ihr Agentencode an einem AWS-Endpunkt ausgeführt wird, 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.

Überprüfen Sie die Konnektivität von Elastic Beanstalk

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 können Sie Ihr Mittel auf verschiedenen Oberflächen testen:

  • Agenten Spielplatz
  • Teams (sofern veröffentlicht)
  • Agent-Shell
  • Verbundoberflächen

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

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 mit Agent-365-Oberflächen und überwachen Sie die Elastic Beanstalk-Protokolle:

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

Du musst deine Identität, den Blueprint, den Bot-Endpunkt oder deine Berechtigungen nicht neu erstellen.

Problembehandlung

Verwenden Sie diesen Abschnitt, um häufige Probleme beim Bereitstellen und Ausführen 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.

Tipp

Der Agent 365 Troubleshooting Guide enthält übergeordnete Empfehlungen zur Fehlerbehebung, Best Practices und Links zu Inhalten zur Fehlerbehebung für jeden Teil des Entwicklungszyklus von Agent 365.

Der 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 die Überprüfung mit eb health.
  • Ihre Sicherheitsgruppe erlaubt eingehenden HTTP- oder 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

Stelle sicher, dass deine Anwendung auf dem Port lauscht, der durch die Umgebungsvariable PORT angegeben ist (Elastic Beanstalk setzt diesen Wert automatisch).

.NET Build- oder Laufzeitprobleme

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

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

Überprüfen sie .NET Version:

dotnet --version
dotnet --list-sdks

Überprü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 bei Unterstützung einen nicht lizenzierten Benutzerpfad.