Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Impara a creare, ospitare, registrare e pubblicare un agente di Agent 365 che viene eseguito su AWS Elastic Beanstalk, usando l'interfaccia della riga di comando di Agent 365. Microsoft Entra e Graph forniscono l'identità, le autorizzazioni e il progetto dell'agente, mentre in AWS Elastic Beanstalk avviene la fase di esecuzione.
Se vuoi puntare l'agente al codice che risiede dietro all'endpoint AWS, ti basta seguire il passaggio: Configurare per l'hosting non Azure. Successivamente, segui tutti gli altri passaggi che trovi in Introduzione allo sviluppo con Agent 365.
Obiettivi
Impara a usare Agent 365 e Microsoft 365 come piano di controllo e:
- Distribuire il runtime dell'agente su AWS Elastic Beanstalk
- Configurare
a365.config.jsonper l'hosting non Azure - Creare un Blueprint agente in Entra ID
- Configurare OAuth2 + autorizzazioni ereditabili
- Registrare l'endpoint di messaggistica del Bot Framework indirizzato a AWS
- Creare Identità agente + Utente agente
- (Facoltativo) Pubblicare sulle app di Microsoft 365
- Test di interazioni end-to-end
Prerequisiti
Prima di iniziare, assicurati che i seguenti prerequisiti di Azure/Microsoft 365, AWS e dell'ambiente locale siano soddisfatti.
Prerequisiti di Azure/Microsoft 365
Conferma l'accesso al tenant Microsoft Entra e installa i seguenti strumenti per creare identità, progetti e per registrare l'agente.
Un tenant Microsoft Entra con:
- Autorizzazione o ruolo per creare applicazioni e progetti di agente (amministratore globale o equivalente)
- Appartenenza al programma di anteprima Frontier per ottenere l'accesso anticipato a Microsoft Agent 365.
- Almeno una licenza Microsoft 365 disponibile per l'utente dell'agente
interfaccia della riga di comando di Azure installato e accesso effettuato.
Prerequisiti di Amazon Web Services (AWS)
Assicurati che i seguenti servizi e strumenti AWS siano configurati per distribuire e gestire l'ambiente Elastic Beanstalk.
- Account AWS con le autorizzazioni appropriate
- Accesso a AWS Elastic Beanstalk abilitato
- Interfaccia della riga di comando di AWS installata e configurata
- Interfaccia della riga di comando di Elastic Beanstalk installata
Prerequisiti dell'ambiente di sviluppo locale
Installa e configura in locale i seguenti strumenti per compilare, eseguire e distribuire l'agente.
Editor di codice: usa Visual Studio Code o Visual Studio
SDK .NET: usa .NET 8.0 SDK o versioni successive
AWS Toolkit: installa questa estensione da Visual Studio o Visual Studio Code. Accedi usando le credenziali di AWS Identity and Access Management (IAM).
Accesso all'API LLM: scegli il servizio appropriato in base alla configurazione dell'agente o al provider di modelli preferito:
- Chiave API OpenAI: ottieni la chiave API OpenAI
- Azure OpenAI: crea e distribuisci una risorsa Azure OpenAI per ottenere l'endpoint e la chiave API
Creare e distribuire un agente .NET
Le seguenti istruzioni descrivono come creare un agente minimo che:
- Risponda a GET
/ - Accetti attività di Bot Framework su POST
/api/messages
Creare la directory del progetto
mkdir aws-a365-agent
cd aws-a365-agent
Inizializzare il progetto .NET
Per semplificare la tua esperienza, in questo articolo si utilizza un esempio già preparato. Clona il repository Agent365 Samples e vai all'esempio dotnet\semantic-kernel\sample-agent.
L'esempio Kernel semantico Sample Agent - C#/.NET include:
- Un'API Web ASP.NET Core minima
- Gestore di messaggi Bot Framework su
/api/messages -
Endpoint di verifica delle condizioni in
/ - Integrazione del kernel semantico per le funzionalità di IA
Vai a dotnet\semantic-kernel\sample-agent e verifica che il progetto venga compilato correttamente:
dotnet restore
dotnet build
Configura il modello
Segui le istruzioni in Passaggio 2: configurazione di LLM per configurare il progetto usando la chiave API aperta.
Testa localmente (facoltativo)
Prima di distribuire il progetto in AWS, testa l'agente localmente:
# Run the application dotnet runTesta gli endpoint in un altro terminale:
# Test agent endpoint locally curl http://localhost:3978Premi
Ctrl+Cper arrestare il server locale.
Crea e distribuisci
Scegli l'opzione che preferisci per compilare e distribuire l'applicazione di esempio:
- Opzione A: compila e distribuisci da Visual Studio
- Opzione B: compila e distribuisci in AWS Elastic Beanstalk con l'interfaccia della riga di comando
Opzione A: compila e distribuisci da Visual Studio
Usa AWS Toolkit for Visual Studio per pubblicare l'app su Elastic Beanstalk usando una procedura guidata.
In Esplora soluzioni fai clic con il pulsante destro del mouse sul progetto.
Seleziona Pubblica su AWS Elastic Beanstalk.
Segui le istruzioni indicata dalla Distribuzione guidata di Beanstalk:
- Scegli il profilo delle credenziali AWS.
- Seleziona la regione, ad esempio,
us-east-1. - Seleziona la piattaforma (
.NET Core on Linux). - Configura le impostazioni dell'ambiente.
Seleziona Distribuisci.
La procedura guidata compila, crea il pacchetto dell'applicazione e lo distribuisce su AWS.
Opzione B: compila e distribuisci in AWS Elastic Beanstalk con l'interfaccia della riga di comando
Usa l'interfaccia a riga di comando di Elastic Beanstalk per creare il pacchetto dell'agente .NET e distribuirlo in un ambiente Amazon Linux 2 a 64 bit. Assicurati che le interfacce della riga di comando di AWS e di EB siano configurate. L'applicazione si associa alla variabile di ambiente PORT impostata da Beanstalk.
Compila e pubblica l'applicazione .NET:
# Publish for Linux runtime (AWS Elastic Beanstalk uses Amazon Linux) dotnet publish -c Release -o ./publish --runtime linux-x64Crea Procfile con il seguente contenuto.
web: dotnet ./SemanticKernelSampleAgent.dllInizializza Elastic Beanstalk per .NET. Ti viene chiesto di scegliere una Regione e una Piattaforma:
eb initSelezionare:
-
Piattaforma:
64bit-amazon-linux-2023-v3.7.0-running-.net-8 -
Regione: la regione AWS che preferisci, ad esempio
us-east-1
-
Piattaforma:
Crea il pacchetto per la distribuzione e distribuiscilo:
cd publish zip -r ../deploy.zip . cd .. eb create aws-a365-agent-env eb deployQuesto comando:
- Crea un'applicazione Elastic Beanstalk.
- Crea un ambiente con un servizio di bilanciamento del carico.
- Distribuisce l'applicazione.
- Effettua il provisioning delle risorse AWS necessarie.
Al termine, ottieni l'endpoint Elastic Beanstalk:
eb statusPrendi nota dell'endpoint. L'aspetto dell'anteprima dovrebbe essere simile al seguente:
http://aws-a365-agent-env.us-east-1.elasticbeanstalk.comQuesto endpoint è l'oggetto
messagingEndpointusato dall'interfaccia della riga di comando degli strumenti di sviluppo di Agent 365.
Nota
Per gli ambienti di produzione, configura il protocollo HTTPS aggiungendo un certificato SSL/TLS in Elastic Beanstalk. Il Bot Framework richiede l'uso di HTTPS per gli endpoint di produzione.
Configurare per l'hosting non Azure
Crea il file a365.config.json manualmente nella cartella del progetto Elastic Beanstalk:
Importante
Per l'hosting non Azure, imposta il valore sull'URL Elastic Beanstalk messagingEndpoint incluso il percorso /api/messages.
Il file a365.config.json deve essere simile al seguente:
{
"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 tabella seguente riepiloga i campi di configurazione importanti e il loro scopo.
| Campo | Significato |
|---|---|
messagingEndpoint |
URL di Elastic Beanstalk + /api/messages |
deploymentProjectPath |
Dove avviene il contrassegno di .env |
Creare l'agente Agent 365
Dopo che il codice dell'agente è stato eseguito su un endpoint AWS, segui i passaggi successivi della guida Introduzione allo sviluppo con Agent 365 per configurare l'agente Agent 365.
Verificare l'agente end-to-end
Usa questi controlli per verificare che l'agente ospitato da AWS sia raggiungibile, riceva attività del Bot Framework e risponda correttamente su tutte le superfici di Agent 365.
Verificare la connettività di Elastic Beanstalk
Invia una richiesta GET all'endpoint Elastic Beanstalk.
curl http://aws-a365-agent-env.us-east-1.elasticbeanstalk.com/
La richiesta dovrebbe restituire questo messaggio:
AWS Agent is running.
Controllare i log di Elastic Beanstalk per vedere se ci sono messaggi in arrivo del Bot Framework
Usa la funzionalità di registrazione di Elastic Beanstalk per verificare che l'agente riceva le attività di Bot Framework e risponda correttamente.
eb logs
In alternativa, monitora i log in tempo reale:
eb logs --stream
Dopo che un messaggio viene ricevuto dall'agente, vedi:
POST 200 /api/messages
Received activity: { ... }
Agente di test da Agent 365
A seconda dell'ambiente, puoi testare l'agente da diverse interfacce:
- Agents Playground
- Teams (se pubblicato)
- La shell dell'agente
- Interfacce federate
Puoi inviare messaggi e verificare i log di Elastic Beanstalk. Scopri come testare gli agenti usando l'SDK di Microsoft Agent 365 e convalidando il funzionamento dell'agente con lo strumento di test del playground per gli agenti.
Flusso di lavoro dello sviluppatore
dopo aver completato la configurazione, segui questo flusso di lavoro per lo sviluppo iterativo:
Sviluppare e testare localmente
Usa la modalità di controllo per uno sviluppo rapido con ricaricamento automatico:
# Automatically rebuild and restart on file changes
dotnet watch run
Modifica il codice, salvalo e testalo localmente prima di distribuire.
Compilare e ridistribuire su AWS Elastic Beanstalk
Quando intendi distribuire le modifiche:
# 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
Testare e monitorare
Testa usando le interfacce di Agent 365 e monitora i log di Elastic Beansham:
# Stream logs in real-time
eb logs --stream
Non è necessario ricreare la tua identità, il progetto, l'endpoint del bot o le autorizzazioni.
Risoluzione dei problemi
Usa questa sezione per diagnosticare e risolvere i problemi più comuni che si verificano durante la distribuzione e l'esecuzione di un agente di Agent 365 su AWS Elastic Beanstalk. Copre la connettività e i controlli di integrità. Affronta anche il binding di porta, gli errori di build e i problemi di licenza.
Suggerimento
Guida alla risoluzione dei problemi di Agent 365 contiene raccomandazioni di alto livello per la risoluzione dei problemi, procedure consigliate e collegamenti a contenuti di risoluzione dei problemi per ogni fase del ciclo di vita dello sviluppo di Agent 365.
L'endpoint di messaggistica non riceve richieste
Controlla i dettagli seguenti:
- L'endpoint è esattamente:
http://<your-app>.elasticbeanstalk.com/api/messages - L'ambiente Elastic Beanstalk è integro. Usa il controllo tramite
eb health. - Il gruppo di sicurezza consente il traffico HTTP o HTTPS in entrata.
- Non ci sono regole del firewall o restrizioni VPC.
Problemi di integrità dell'applicazione
Verifica l'integrità dell'ambiente:
eb health --refresh
Visualizza i log dettagliati:
eb logs
Problemi di binding delle porte
Assicurati che l'applicazione sia in ascolto sulla porta specificata dalla variabile di ambiente PORT. Elastic Beanstalk imposta questo valore automaticamente.
Problemi di build o di runtime di .NET
Controlla eventuali errori di compilazione usando questi comandi:
# Clean and rebuild
dotnet clean
dotnet build --verbosity detailed
Verifica la versione di .NET:
dotnet --version
dotnet --list-sdks
Controlla eventuali problemi di pacchetto:
# List installed packages
dotnet list package
# Update packages
dotnet restore --force
Problemi di assegnazione della licenza
Assegna manualmente una licenza di Microsoft 365 valida oppure usa un percorso per utenti senza licenza, se supportato.