Een bot inrichten en publiceren

VAN TOEPASSING OP: SDK v4

In dit artikel wordt beschreven hoe u de Azure CLI gebruikt om resources voor uw bot te maken, uw bot voor te bereiden op implementatie en uw bot te implementeren in Azure.

In dit artikel wordt ervan uitgegaan dat u een bot hebt die klaar is om te worden geïmplementeerd. Zie Een bot maken met de Bot Framework SDK voor meer informatie over het maken van een eenvoudige echobot. U kunt ook een van de voorbeelden in de opslagplaats Bot Framework-voorbeelden gebruiken.

Tip

In dit artikel wordt een Azure Bot-resource voor uw bot gemaakt. Bestaande bots die gebruikmaken van een web-app-botresource of een registratieresource voor botkanalen blijven werken, maar u kunt geen nieuwe bots maken die gebruikmaken van deze resourcetypen.

Notitie

De Sdk's voor Bot Framework JavaScript, C# en Python blijven ondersteund, maar de Java SDK wordt buiten gebruik gesteld met definitieve langetermijnondersteuning die eindigt op november 2023. Alleen kritieke beveiligings- en foutoplossingen in deze opslagplaats worden uitgevoerd.

Bestaande bots die zijn gebouwd met de Java SDK blijven functioneren.

Voor het bouwen van nieuwe bots kunt u Power Virtual Agents gebruiken en lezen over het kiezen van de juiste chatbotoplossing.

Zie De toekomst van botbouw voor meer informatie.

Vereisten

  • Installeer Maven voor Java-bots.

  • In dit proces worden twee Azure Resource Manager-sjablonen (ARM-sjablonen) gebruikt om resources voor uw bot te maken.

    Als u de huidige sjablonen niet hebt, maakt u een kopie in uw botproject van de map deploymentTemplates : C#, JavaScript, Python of Java.

Als u de Azure CLI wilt gebruiken om bots in te richten en te publiceren, hebt u het volgende nodig:

  • Een Azure-account met een actief abonnement. Maak een gratis account.

  • Een installatie van de Azure CLI.

    Gebruik voor uw programmeertaal de volgende versie van de Azure CLI. Sommige stappen werken niet met latere versies van de CLI.

    Taal CLI-versie
    C# en JavaScript 2.39.0 of hoger
    Python 2.36.0
    Java 2.29.2

Notitie

Als uw bot gebruikmaakt van extra resources, zoals een opslagservice of taalservices, moeten deze afzonderlijk worden geïmplementeerd.

Uw implementatie plannen

Voordat u begint, moet u deze beslissingen nemen.

Beslissing Opmerkingen
Hoe u de identiteiten van uw bot-resources in Azure beheert U kunt een door de gebruiker toegewezen beheerde identiteit, een app-registratie met één tenant of een app-registratie met meerdere tenants gebruiken. Zie Een identiteitsresource maken voor meer informatie.
In welke resourcegroep of resourcegroepen maakt u uw botresources Totdat u bekend bent met dit proces, raden we u aan één resourcegroep te gebruiken. Zie Azure-resources beheren voor meer informatie.
Of uw bot nu regionaal of globaal is Zie Regionalisatie in Azure AI Bot Service voor meer informatie over regionale bots.

Uw bot-identiteit kan op verschillende manieren worden beheerd in Azure.

  • Als een door de gebruiker toegewezen beheerde identiteit, zodat u de referenties van de bot niet zelf hoeft te beheren.
  • Als een app met één tenant .
  • Als een app met meerdere tenants .

Ondersteuning voor de door de gebruiker toegewezen beheerde identiteit en app-typen met één tenant is toegevoegd aan de Bot Framework SDK voor C# en JavaScript in versie 4.15.0. Deze app-typen worden niet ondersteund in de andere talen of in Bot Framework Composer, Bot Framework Emulator of ngrok.

Type app Ondersteuning
Door de gebruiker toegewezen beheerde identiteit Azure AI Bot Service en de C# en JavaScript SDK's
Eén tenant Azure AI Bot Service en de C# en JavaScript SDK's
Multi-tenant Azure AI Bot Service, alle Bot Framework SDK-talen, Composer, de Emulator en ngrok

Belangrijk

Python-bots kunnen niet worden geïmplementeerd in een resourcegroep die Windows-services of -bots bevat. Meerdere Python-bots kunnen echter worden geïmplementeerd in dezelfde resourcegroep. Maak andere services, zoals Azure AI-services, in een andere resourcegroep.

Azure-resources

Voordat u uw bot kunt implementeren, maakt (of richt) u de Azure-resources in die nodig zijn. Voor sommige van de stappen kunt u een bestaande resource gebruiken of een nieuwe resource maken.

Het kan handig zijn om vooraf te beslissen over de namen van de nieuwe resources die u maakt en de namen van de bestaande resources die u gaat gebruiken. Uw bot gebruikt deze typen resources.

  • Het Azure-abonnement dat u gebruikt voor het inrichten, publiceren en beheren van de bot
  • Een of meer resourcegroepen
  • Een door de gebruiker toegewezen beheerde identiteit of een App-registratie van Microsoft Entra ID
  • Een Resource voor een App Service-plan
  • Een App Service-resource
  • Een Azure Bot-resource

Informatie die wordt gebruikt voor alle resources

Wanneer u resources in Azure maakt, genereert of aanvraagt Azure id's, wachtwoorden en andere informatie die u in latere stappen nodig hebt. De volgende tabel bevat de informatie die verder gaat dan resourcenamen die u moet vastleggen, in welke stap deze wordt gegenereerd en in welke stappen deze wordt gebruikt.

Let op

Veel van deze id's en wachtwoorden zijn gevoelige informatie. Zie Bot Framework-beveiligingsrichtlijnen voor informatie over algemene beveiligingsrichtlijnen.

Gegevens Waar gegenereerd of gevonden Waar gebruikt
Tenant-id Aanmelden en abonnement selecteren Azure CLI gebruiken om een App Service-resource te maken, Azure CLI gebruiken om een Azure Bot-resource te maken of bij te werken, projectconfiguratie-instellingen bijwerken
Type app Een identiteitsresource maken Azure CLI gebruiken om een App Service-resource te maken, Azure CLI gebruiken om een Azure Bot-resource te maken of bij te werken, projectconfiguratie-instellingen bijwerken
Client ID Een identiteitsresource maken Azure CLI gebruiken om een App Service-resource te maken, Azure CLI gebruiken om een Azure Bot-resource te maken of bij te werken, projectconfiguratie-instellingen bijwerken
URL van basis-app-service Azure CLI gebruiken om een App Service-resource te maken Azure CLI gebruiken om een Azure Bot-resource te maken of bij te werken
App Service-naam Azure CLI gebruiken om een App Service-resource te maken Uw bot publiceren naar Azure

Aanmelden en abonnement selecteren

  1. Open een opdrachtvenster.

  2. Meld u aan bij Azure.

    az login
    
    • Er wordt een browservenster geopend. Voltooi het aanmeldingsproces.
    • Wanneer de opdracht is geslaagd, wordt een lijst uitgevoerd met de abonnementen waarvoor uw account toegang heeft.
  3. Voer het volgende uit om het abonnement in te stellen dat moet worden gebruikt:

    az account set --subscription "<subscription>"
    

    <Gebruik voor het abonnement> de id of naam van het abonnement dat u wilt gebruiken.

  4. Als u een door de gebruiker toegewezen beheerde identiteit of een bot met één tenant maakt, neemt u het tenantId voor het abonnement op. U gebruikt de tenant-id in de volgende stappen.

Tip

Als u in een niet-openbare cloud moet werken, raadpleegt u Azure-cloudbeheer met de Azure CLI.

Resourcegroepen maken

Als u nog geen geschikte resourcegroep hebt, gebruikt u de az group create opdracht om de nieuwe resourcegroepen te maken die u nodig hebt.

az group create --name "<group>" --location "<region>"
Optie Description
name De naam van de resourcegroep die u wilt maken.
locatie De regio waarin de resourcegroep moet worden gemaakt.

Zie Azure-resourcegroepen beheren met de Azure CLI voor meer informatie.

Een identiteitsresource maken

  1. Gebruik de opdracht az identity create om een door een gebruiker toegewezen beheerde identiteit te maken. Bij succes genereert de opdracht JSON-uitvoer.

    az identity create --resource-group "<group>" --name "<identity>"
    
    Optie Omschrijving
    resource-group De naam van de resourcegroep waarin de identiteit moet worden gemaakt.
    name De naam van de identiteitsresource die moet worden gemaakt.

    Zie de naslaginformatie over az identity voor meer informatie.

  2. Noteer waarden die u in latere stappen nodig hebt.

    1. De naam van de resourcegroep voor de identiteitsresource
    2. De naam van de identiteitsresource
    3. De clientId uitvoer van de opdracht

Resources maken met ARM-sjablonen

Maak de App Service en de Azure Bot-resources voor uw bot. Beide stappen gebruiken een ARM-sjabloon en de az deployment group create Azure CLI-opdracht om de resource of resources te maken.

  1. Maak een App Service-resource voor uw bot. De App Service kan zich binnen een nieuw of bestaand App Service-plan bevindt.

    Zie Azure CLI gebruiken om een App Service te maken voor gedetailleerde stappen.

  2. Maak een Azure Bot-resource voor uw bot.

    Zie Azure CLI gebruiken om een Azure-bot te maken of bij te werken voor gedetailleerde stappen.

Belangrijk

U kunt deze stappen in beide volgorde uitvoeren. Als u uw Azure Bot echter eerst maakt, moet u het berichteindpunt bijwerken nadat u uw App Service-resource hebt gemaakt.

Projectconfiguratie-instellingen bijwerken

Informatie over botidentiteit

Volg deze stappen om identiteitsgegevens toe te voegen aan het configuratiebestand van uw bot. Het bestand verschilt, afhankelijk van de programmeertaal die u gebruikt om de bot te maken.

Belangrijk

De Java- en Python-versies van de Bot Framework SDK ondersteunen alleen bots met meerdere tenants. De C#- en JavaScript-versies ondersteunen alle drie de toepassingstypen voor het beheren van de identiteit van de bot.

Taal Bestandsnaam Opmerkingen
C# appsettings.json Ondersteunt alle drie de toepassingstypen voor het beheren van de identiteit van uw bot.
JavaScript .env Ondersteunt alle drie de toepassingstypen voor het beheren van de identiteit van uw bot.
Java application.properties Ondersteunt alleen bots met meerdere tenants.
Python config.py Ondersteunt alleen bots met meerdere tenants. Geef de identiteitseigenschappen op als argumenten voor de os.environ.get methode-aanroepen.

De identiteitsgegevens die u moet toevoegen, zijn afhankelijk van het toepassingstype van de bot. Geef de volgende waarden op in uw configuratiebestand.

Alleen beschikbaar voor C# en JavaScript-bots.

Eigenschappen Weergegeven als
MicrosoftAppType UserAssignedMSI
MicrosoftAppId De client-id van de door de gebruiker toegewezen beheerde identiteit.
MicrosoftAppPassword Niet van toepassing. Laat dit leeg voor een door de gebruiker toegewezen beheerde identiteit-bot.
MicrosoftAppTenantId De tenant-id van de door de gebruiker toegewezen beheerde identiteit.

Uw projectbestanden voorbereiden

Bereid uw projectbestanden voor voordat u uw bot implementeert.

  1. Schakel over naar de hoofdmap van uw project. Voor C# is de hoofdmap de map die het .csproj-bestand bevat.

  2. Voer een schone herbouw uit in de releasemodus.

  3. Als u dit nog niet eerder hebt gedaan, voert u de opdracht uit az bot prepare-deploy om vereiste bestanden toe te voegen aan de hoofdmap van uw lokale broncodemap. Met deze opdracht wordt een .deployment bestand gegenereerd in de projectmap van uw bot.

    az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "<my-cs-proj>"
    
    Optie Omschrijving
    lang De taal of runtime van de bot. Gebruik Csharp.
    code-dir De map waarin de gegenereerde implementatiebestanden worden opgeslagen. Gebruik de hoofdmap van uw project. Standaard is de huidige map.
    proj-file-path Het pad naar het .csproj-bestand voor uw bot ten opzichte van de code-dir optie.
  4. Maak in de hoofdmap van uw project een zip-bestand met alle bestanden en submappen.

Uw bot publiceren naar Azure

Op dit moment bent u klaar om code voor uw bot te implementeren in uw App Service-resource.

Notitie

Het kan enkele minuten duren voordat deze stap is voltooid. Het kan ook enkele minuten duren voordat de implementatie is voltooid en wanneer uw bot beschikbaar is om te testen.

Voer de volgende opdracht uit vanaf de opdrachtregel om implementatie uit te voeren met behulp van de Kudu zip-push-implementatie voor uw app-service (web-app).

az webapp deployment source config-zip --resource-group "<resource-group-name>" --name "<name-of-app-service>" --src "<project-zip-path>"
Optie Omschrijving
resource-group De naam van de Azure-resourcegroep die uw bot bevat.
name Naam van de app-service die u eerder hebt gebruikt.
src Het absolute of relatieve pad naar het gezipte projectbestand dat u hebt gemaakt.

Tip

Deze opdracht wordt standaard geïmplementeerd in de productiesite. Gebruik de optionele --slot parameter om een andere site op te geven. Zie de naslaginformatie over de az webapp deployment source config-zip-opdracht voor meer informatie.

Testen in webchat

  1. Navigeer in uw browser naar Azure Portal.
  2. Ga naar uw botresource.
  3. Open de test in Webchat deelvenster.
  4. Interactie met uw geïmplementeerde bot.

Zie Een bot registreren bij Bot Service voor meer informatie over botregistratie.

Resources opschonen

Als u deze toepassing niet gaat publiceren, verwijdert u de bijbehorende resources met de volgende stappen:

  1. Open in Azure Portal de resourcegroep voor uw bot.
    1. Selecteer Resourcegroep verwijderen om de groep en alle resources die deze bevat te verwijderen.
    2. Voer de naam van de resourcegroep in het bevestigingsvenster in en selecteer Vervolgens Verwijderen.
  2. Als u een app met één tenant of meerdere tenants hebt gemaakt:
    1. Ga naar de blade Microsoft Entra-id.
    2. Zoek de app-registratie die u hebt gebruikt voor uw bot en verwijder deze.

Aanvullende bronnen

Zie deze artikelen voor meer informatie over Azure-toepassingen en -resources die worden gebruikt voor het hosten van een bot.

Onderwerp Artikel
Azure-CLI Wat is de Azure CLI?
Azure-abonnementsbeheer Azure-abonnementen beheren met de Azure CLI
Azure-regio's Regio’s en beschikbaarheidszones
Resourcegroepen en resourcebeheer Azure-resources beheren
Beheerde identiteiten Wat zijn beheerde identiteiten voor Azure-resources?
Apps met één tenant en apps met meerdere tenants Tenancy in Microsoft Entra ID
Webtoepassingen App Service
Rekenresources voor webtoepassingen App Service-abonnementen
Azure Resource Manager-sjablonen (ARM-sjablonen) Wat zijn ARM-sjablonen? en arm-implementatiesjablonen (Azure Resource Manager) gebruiken met Azure CLI
Facturering in Azure Facturering en kostenbeheer

Kudu-bestanden

De web-app-implementatieopdracht maakt gebruik van Kudu om C#-, JavaScript- en Python-bots te implementeren. Wanneer u de niet-geconfigureerde ZIP DEPLOY-API gebruikt om de code van uw bot te implementeren, is het gedrag als volgt:

In Kudu wordt ervan uitgegaan dat implementaties van .zip bestanden klaar zijn om te worden uitgevoerd en dat er geen extra buildstappen nodig zijn tijdens de implementatie, zoals npm-installatie of dotnet-herstel/dotnet-publicatie.

Het is belangrijk dat u uw ingebouwde code opneemt met alle benodigde afhankelijkheden in het zip-bestand dat wordt geïmplementeerd; anders werkt uw bot niet zoals bedoeld. Zie de Azure-documentatie over het implementeren van bestanden in App Service voor meer informatie.

Volgende stappen