Effettuare il provisioning e pubblicare un bot
SI APPLICA A: SDK v4
Questo articolo descrive come usare l'interfaccia della riga di comando di Azure per creare risorse per il bot, preparare il bot per la distribuzione e distribuire il bot in Azure.
Questo articolo presuppone che si abbia a disposizione un bot pronto per la distribuzione. Per informazioni su come creare un semplice bot echo, vedere Creare un bot con Bot Framework SDK. È anche possibile usare uno degli esempi disponibili nel repository degli esempi di Bot Framework.
Suggerimento
Questo articolo crea una risorsa di Azure Bot per il bot. I bot esistenti che usano una risorsa bot app Web o una risorsa di registrazione canali bot continueranno a funzionare, ma non è possibile creare nuovi bot che usano questi tipi di risorse.
Nota
Gli SDK JavaScript, C# e Python di Bot Framework continueranno a essere supportati, ma Java SDK verrà ritirato con il supporto finale a lungo termine che termina a novembre 2023.
I bot esistenti creati con Java SDK continueranno a funzionare.
Per la creazione di nuovi bot, è consigliabile usare Microsoft Copilot Studio e leggere le informazioni sulla scelta della soluzione copilota appropriata.
Per altre informazioni, vedere Il futuro della compilazione di bot.
Prerequisiti
Per i bot Java, installare Maven.
Questo processo usa due modelli di Azure Resource Manager (modelli arm) per creare risorse per il bot.
Se i modelli correnti non sono disponibili, creare una copia nel progetto bot della cartella deploymentTemplates : C#, JavaScript, Python o Java.
Per usare l'interfaccia della riga di comando di Azure per effettuare il provisioning e la pubblicazione di bot, è necessario:
Un account Azure con una sottoscrizione attiva. Creare un account gratuito.
Installazione dell'interfaccia della riga di comando di Azure.
Per il linguaggio di programmazione, usare la versione seguente dell'interfaccia della riga di comando di Azure. Alcuni passaggi non funzioneranno con le versioni successive dell'interfaccia della riga di comando.
Lingua Versione dell'interfaccia della riga di comando C# e JavaScript 2.39.0 o versione successiva Python 2.55.0 o versione successiva Java 2.29.2
Nota
Se il bot usa risorse aggiuntive, ad esempio un servizio di archiviazione o servizi linguistici, questi devono essere distribuiti separatamente.
Pianificazione della distribuzione
Prima di iniziare, prendere queste decisioni.
Decisione | Note |
---|---|
Come gestire le identità delle risorse del bot in Azure | È possibile usare un'identità gestita assegnata dall'utente, una registrazione di app a tenant singolo o una registrazione dell'app mutli-tenant. Per altre informazioni, vedere Creare una risorsa di identità. |
In quale gruppo di risorse o gruppi di risorse si creeranno le risorse del bot | Fino a quando non si ha familiarità con questo processo, è consigliabile usare un gruppo di risorse. Per altre informazioni, vedere Gestire le risorse di Azure. |
Indica se il bot sarà a livello di area o globale | Per informazioni sui bot a livello di area, vedere Regionalizzazione in Azure AI servizio Bot. |
L'identità del bot può essere gestita in Azure in diversi modi.
- Come identità gestita assegnata dall'utente, in modo che non sia necessario gestire manualmente le credenziali del bot.
- Come app a tenant singolo.
- Come app multi-tenant.
Il supporto per l'identità gestita assegnata dall'utente e i tipi di app a tenant singolo è stato aggiunto a Bot Framework SDK per C#, JavaScript e Python. Questi tipi di app non sono supportati negli altri linguaggi o in Bot Framework Composer, Bot Framework Emulator o Dev Tunnels.
Tipo di app | Supporto tecnico |
---|---|
Identità gestita assegnata dall'utente | Azure AI servizio Bot e gli SDK C#, JavaScript e Python |
Tenant singolo | Azure AI servizio Bot e gli SDK C#, JavaScript e Python |
Multi-tenant | Azure AI servizio Bot, tutti i linguaggi di Bot Framework SDK, Composer, emulatore e dev tunnel |
Importante
I bot Python non possono essere distribuiti in un gruppo di risorse che contiene servizi o bot Di Windows. Tuttavia, più bot Python possono essere distribuiti nello stesso gruppo di risorse. Creare altri servizi, ad esempio i servizi di intelligenza artificiale di Azure, in un gruppo di risorse diverso.
Risorse di Azure
Prima di poter distribuire il bot, è necessario creare (o effettuare il provisioning) delle risorse di Azure necessarie. Per alcuni passaggi, è possibile usare una risorsa esistente o crearne una nuova.
Potrebbe essere utile decidere in anticipo i nomi delle nuove risorse che verranno create e i nomi delle risorse esistenti che verranno usate. Il bot userà questi tipi di risorse.
- Sottoscrizione di Azure che verrà usata per effettuare il provisioning, pubblicare e gestire il bot
- Uno o più gruppi di risorse
- Un'identità gestita assegnata dall'utente o una registrazione dell'app Microsoft Entra ID
- Una risorsa piano di servizio app
- Una risorsa servizio app
- Una risorsa di Azure Bot
Informazioni usate tra le risorse
Quando si creano risorse in Azure, Azure genererà o richiederà ID, password e altre informazioni necessarie nei passaggi successivi. La tabella seguente elenca le informazioni oltre ai nomi delle risorse che è necessario registrare, in quale passaggio viene generato e in cui vengono usati i passaggi.
Attenzione
Molti di questi ID e password sono informazioni riservate. Per informazioni sulle linee guida di sicurezza comuni, vedere Linee guida per la sicurezza di Bot Framework.
Eseguire l'accesso e selezionare la sottoscrizione
Aprire una finestra di comando.
Accedere ad Azure.
az login
- Verrà aperta una finestra del browser. Completare il processo di accesso.
- In caso di esito positivo, il comando restituisce un elenco delle sottoscrizioni a cui l'account ha accesso.
Per impostare la sottoscrizione da usare, eseguire:
az account set --subscription "<subscription>"
Per <la sottoscrizione>, usare l'ID o il nome della sottoscrizione da usare.
Se si creerà un'identità gestita assegnata dall'utente o un bot a tenant singolo, registrare per
tenantId
la sottoscrizione. L'ID tenant verrà usato nei passaggi seguenti.
Suggerimento
Se è necessario lavorare in un cloud non pubblico, vedere Gestione cloud di Azure con l'interfaccia della riga di comando di Azure.
Creare gruppi di risorse
Se non si ha già un gruppo di risorse appropriato, usare il az group create
comando per creare i nuovi gruppi di risorse necessari.
az group create --name "<group>" --location "<region>"
Opzione | Descrizione |
---|---|
name | Nome del gruppo di risorse da creare. |
location | Area in cui creare il gruppo di risorse. |
Per altre informazioni, vedere Come gestire i gruppi di risorse di Azure con l'interfaccia della riga di comando di Azure.
Creare una risorsa di identità
Per creare un'identità gestita assegnata dall'utente, usare il comando
az identity create
. In caso di esito positivo, il comando genera l'output JSON.az identity create --resource-group "<group>" --name "<identity>"
Opzione Descrizione resource-group Nome del gruppo di risorse in cui creare l'identità. name Nome della risorsa di identità da creare. Per altre informazioni, vedere il riferimento az identity .
Registrare i valori necessari nei passaggi successivi.
- Nome del gruppo di risorse per la risorsa di identità
- Nome della risorsa di identità
- Oggetto
clientId
dall'output del comando
Creare risorse con i modelli di Resource Manager
Creare le servizio app e le risorse di Azure Bot per il bot.
Entrambi i passaggi usano un modello di Resource Manager e il comando dell'interfaccia della az deployment group create
riga di comando di Azure per creare la risorsa o le risorse.
Creare una risorsa servizio app per il bot. Il servizio app può trovarsi all'interno di un piano di servizio app nuovo o esistente.
Per informazioni dettagliate, vedere Usare l'interfaccia della riga di comando di Azure per creare un servizio app.
Creare una risorsa di Azure Bot per il bot.
Per i passaggi dettagliati, vedere Usare l'interfaccia della riga di comando di Azure per creare o aggiornare un'istanza di Azure Bot.
Importante
È possibile eseguire questi passaggi in entrambi gli ordini. Tuttavia, se si crea prima Azure Bot, sarà necessario aggiornarne l'endpoint di messaggistica dopo aver creato la risorsa servizio app.
Aggiornare le impostazioni di configurazione del progetto
Informazioni sull'identità del bot
Seguire questa procedura per aggiungere informazioni sull'identità al file di configurazione del bot. Il file varia a seconda del linguaggio di programmazione usato per creare il bot.
Importante
La versione Java di Bot Framework SDK supporta solo bot multi-tenant. Le versioni C#, JavaScript e Python supportano tutti e tre i tipi di applicazione per la gestione dell'identità del bot.
Lingua | File name | Note |
---|---|---|
C# | appsettings.json | Supporta tutti e tre i tipi di applicazione per la gestione dell'identità del bot. |
JavaScript | .env | Supporta tutti e tre i tipi di applicazione per la gestione dell'identità del bot. |
Java | application.properties | Supporta solo bot multi-tenant. |
Python | config.py | Supporta tutti e tre i tipi di applicazione per la gestione dell'identità del bot. |
Le informazioni sull'identità da aggiungere dipendono dal tipo di applicazione del bot. Specificare i valori seguenti nel file di configurazione.
Disponibile per bot C#, JavaScript e Python.
Proprietà | valore |
---|---|
MicrosoftAppType |
UserAssignedMSI |
MicrosoftAppId |
ID client dell'identità gestita assegnata dall'utente. |
MicrosoftAppPassword |
Non applicabile. Lasciare vuoto questo campo per un bot di identità gestita assegnato dall'utente. |
MicrosoftAppTenantId |
ID tenant dell'identità gestita assegnata dall'utente. |
Preparare i file di progetto
Preparare i file di progetto prima di distribuire il bot.
Passare alla cartella radice del progetto. Per C#, la radice è la cartella che contiene il file con estensione csproj.
Eseguire una ricompilazione pulita in modalità di rilascio.
Se non è stato fatto in precedenza, eseguire
az bot prepare-deploy
per aggiungere i file necessari alla radice della directory del codice sorgente locale. Questo comando genera un file.deployment
nella cartella di progetto del bot.az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "<my-cs-proj>"
Opzione Descrizione lang Linguaggio o runtime del bot. Usare Csharp
.code-dir Directory in cui inserire i file di distribuzione generati. Usare la cartella radice del progetto. Il valore predefinito è la directory corrente. proj-file-path Percorso del file con estensione csproj per il bot, relativo all'opzione code-dir
.All'interno della cartella radice del progetto creare un file ZIP contenente tutti i file e le sottocartelle.
Pubblicare il bot in Azure
A questo punto, si è pronti per distribuire il codice per il bot nella risorsa servizio app.
Nota
Il completamento di questo passaggio può richiedere alcuni minuti. Completata la distribuzione, può trascorrere ancora qualche minuto prima che il bot sia disponibile per il test.
Eseguire il az webapp deploy
comando dalla riga di comando per eseguire la distribuzione usando la distribuzione push zip Kudu per il servizio app (app Web).
Opzione | Descrizione |
---|---|
resource-group | Nome del gruppo di risorse di Azure che contiene il bot. |
name | Nome del servizio app usato in precedenza. |
src | Percorso assoluto o relativo del file di progetto compresso creato. |
Suggerimento
Per impostazione predefinita, questo comando viene distribuito nello slot di produzione. Usare il parametro facoltativo --slot
per specificare uno slot diverso.
Per altre informazioni, vedere la documentazione di riferimento sui az webapp deploy
comandi.
Testare nella chat Web
- Nel browser passare al portale di Azure.
- Passare alla risorsa bot.
- Aprire il riquadro Test in Web Chat (Esegui test in Web Chat).
- Interagire con il bot distribuito.
Per altre informazioni sulla registrazione del bot, vedere Registrare un bot con servizio Bot.
Pulire le risorse
Se non si intende pubblicare questa applicazione, eliminare le risorse associate con la procedura seguente:
- Nel portale di Azure aprire il gruppo di risorse per il bot.
- Selezionare Elimina gruppo di risorse per eliminare il gruppo e tutte le risorse che contiene.
- Immettere il nome del gruppo di risorse nel riquadro di conferma e quindi selezionare Elimina.
- Se è stata creata un'app a tenant singolo o multi-tenant:
- Passare al pannello Microsoft Entra ID .
- Individuare la registrazione dell'app usata per il bot ed eliminarla.
Risorse aggiuntive
Per altre informazioni sulle applicazioni e sulle risorse di Azure usate per ospitare un bot, vedere questi articoli.
Oggetto | Articolo |
---|---|
Interfaccia della riga di comando di Azure | Che cos'è l'interfaccia della riga di comando di Azure? |
Gestione delle sottoscrizioni di Azure | Come gestire le sottoscrizioni di Azure con l'interfaccia della riga di comando di Azure |
Aree di Azure | Aree e zone di disponibilità |
Gruppi di risorse e gestione delle risorse | Manage Azure resources (Gestire risorse di Azure) |
Identità gestite | Cosa sono le identità gestite per le risorse di Azure? |
App a tenant singolo e multi-tenant | Tenancy in Microsoft Entra ID |
Applicazioni Web | Servizio app |
Risorse di calcolo per le applicazioni Web | Piani del servizio app |
Modelli di Azure Resource Manager (modelli ARM) | Che cosa sono i modelli di Resource Manager? e Come usare i modelli di distribuzione di Azure Resource Manager (ARM) con l'interfaccia della riga di comando di Azure |
Fatturazione di Azure | Fatturazione e gestione dei costi |
File Kudu
Il comando di distribuzione dell'app Web usa Kudu per distribuire bot C#, JavaScript e Python. Quando si usa l'API di distribuzione zip non configurata per distribuire il codice del bot, il comportamento è il seguente:
Kudu presuppone per impostazione predefinita che le distribuzioni dei file di .zip siano pronte per l'esecuzione e non richiedano passaggi di compilazione aggiuntivi durante la distribuzione, ad esempio npm install o dotnet restore/dotnet publish.
È importante includere il codice compilato con tutte le dipendenze necessarie nel file ZIP da distribuire; in caso contrario, il bot non funzionerà come previsto. Per altre informazioni, vedere la documentazione di Azure su come distribuire file in servizio app.