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. Verranno eseguite solo correzioni di bug e sicurezza critiche all'interno di questo repository.

I bot esistenti creati con Java SDK continueranno a funzionare.

Per la creazione di nuovi bot, prendere in considerazione l'uso di Power Virtual Agents e leggere la scelta della soluzione chatbot 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.36.0
    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.

Decision 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# e JavaScript nella versione 4.15.0. Questi tipi di app non sono supportati negli altri linguaggi o in Bot Framework Composer, Bot Framework Emulator o ngrok.

Tipo di app Supporto tecnico
Identità gestita assegnata dall'utente Azure AI servizio Bot e gli SDK C# e JavaScript
Tenant singolo Azure AI servizio Bot e gli SDK C# e JavaScript
Multi-tenant Azure AI servizio Bot, tutti i linguaggi di Bot Framework SDK, Composer, emulatore e ngrok

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.

Informazioni Posizione in cui è stato generato o trovato Dove viene usato
ID tenant Accedere e selezionare la sottoscrizione Usare l'interfaccia della riga di comando di Azure per creare una risorsa servizio app, usare l'interfaccia della riga di comando di Azure per creare o aggiornare una risorsa di Azure Bot, aggiornare le impostazioni di configurazione del progetto
Tipo di app Creare una risorsa di identità Usare l'interfaccia della riga di comando di Azure per creare una risorsa servizio app, usare l'interfaccia della riga di comando di Azure per creare o aggiornare una risorsa di Azure Bot, aggiornare le impostazioni di configurazione del progetto
Client ID Creare una risorsa di identità Usare l'interfaccia della riga di comando di Azure per creare una risorsa servizio app, usare l'interfaccia della riga di comando di Azure per creare o aggiornare una risorsa di Azure Bot, aggiornare le impostazioni di configurazione del progetto
URL del servizio app di base Usare l'interfaccia della riga di comando di Azure per creare una risorsa servizio app Usare l'interfaccia della riga di comando di Azure per creare o aggiornare una risorsa di Azure Bot
Nome del servizio app Usare l'interfaccia della riga di comando di Azure per creare una risorsa servizio app Pubblicare il bot in Azure

Eseguire l'accesso e selezionare la sottoscrizione

  1. Aprire una finestra di comando.

  2. 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.
  3. 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.

  4. 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.
posizione 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à

  1. 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 .

  2. Registrare i valori necessari nei passaggi successivi.

    1. Nome del gruppo di risorse per la risorsa di identità
    2. Nome della risorsa di identità
    3. 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.

  1. 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.

  2. 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

Le versioni Java e Python di Bot Framework SDK supportano solo bot multi-tenant. Le versioni C# e JavaScript 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 solo bot multi-tenant. Specificare le proprietà identity come argomenti per le chiamate al os.environ.get metodo.

Le informazioni sull'identità da aggiungere dipendono dal tipo di applicazione del bot. Specificare i valori seguenti nel file di configurazione.

Disponibile solo per i bot C# e JavaScript.

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.

  1. Passare alla cartella radice del progetto. Per C#, la radice è la cartella che contiene il file con estensione csproj.

  2. Eseguire una ricompilazione pulita in modalità di rilascio.

  3. 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 .
  4. 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 comando seguente dalla riga di comando per eseguire la distribuzione usando la distribuzione push zip Kudu per il servizio app (app Web).

az webapp deployment source config-zip --resource-group "<resource-group-name>" --name "<name-of-app-service>" --src "<project-zip-path>"
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 il riferimento al comando az webapp deployment source config-zip .

Testare nella chat Web

  1. Nel browser passare al portale di Azure.
  2. Passare alla risorsa bot.
  3. Aprire il riquadro Test in Web Chat (Esegui test in Web Chat).
  4. 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:

  1. Nel portale di Azure aprire il gruppo di risorse per il bot.
    1. Selezionare Elimina gruppo di risorse per eliminare il gruppo e tutte le risorse che contiene.
    2. Immettere il nome del gruppo di risorse nel riquadro di conferma e quindi selezionare Elimina.
  2. Se è stata creata un'app a tenant singolo o multi-tenant:
    1. Passare al pannello Microsoft Entra ID .
    2. 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 Informazioni sulle 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 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.

Passaggi successivi