Provisionner et publier un bot

S'APPLIQUE À : SDK v4

Cet article explique comment utiliser Azure CLI pour créer des ressources pour votre bot, préparer votre bot pour le déploiement et déployer votre bot sur Azure.

Cet article suppose que vous disposez d’un bot prêt à être déployé. Pour en savoir plus sur la création d’un bot echo simple, reportez-vous à Créer un bot à l’aide du kit de développement logiciel (SDK) Bot Framework. Vous pouvez également utiliser l’un des exemples fournis dans le dépôt Bot Framework Samples.

Conseil

Cet article crée une ressource Azure Bot pour votre bot. Les bots existants qui utilisent une ressource Web App Bot ou une ressource Bot Channels Registration continueront de fonctionner, mais vous ne pouvez pas créer de bots qui utilisent ces types de ressources.

Remarque

Les kits SDK JavaScript, C# et Python Bot Framework continueront d’être pris en charge. Toutefois, le kit de développement logiciel (SDK) Java est mis hors service avec une prise en charge finale à long terme se terminant en novembre 2023. Seuls les correctifs de sécurité et de bogues critiques au sein de ce référentiel seront appliqués.

Les bots existants créés avec le kit de développement logiciel (SDK) Java continueront de fonctionner.

Pour la nouvelle génération de bots, envisagez d'utiliser Power Virtual Agents et découvrez comment choisir la solution de chatbot appropriée.

Pour plus d’informations, consultez Les futures versions de bot.

Prérequis

  • Pour les bots Java, installez Maven.

  • Ce processus utilise deux modèles Azure Resource Manager (modèles ARM) pour créer des ressources pour votre bot.

    Si vous ne disposez pas des modèles actuels, créez une copie du dossier deploymentTemplates dans votre projet bot : C#, JavaScript, Python ou Java.

Pour utiliser Azure CLI pour approvisionner et publier des bots, vous avez besoin des éléments suivants :

  • Un compte Azure disposant d’un abonnement actif. Créer un compte gratuit.

  • Une version installée d’Azure CLI.

    Pour votre langage de programmation, utilisez la version suivante d'Azure CLI. Certaines étapes ne fonctionnent pas avec les versions ultérieures de l'interface CLI.

    Langage Version de la CLI
    C# et JavaScript 2.39.0 ou version ultérieure
    Python 2.36.0
    Java 2.29.2

Remarque

Si votre bot utilise des ressources supplémentaires, telles qu’un service de stockage ou des services linguistiques, celles-ci doivent être déployées séparément.

Planifier votre déploiement

Avant de commencer, prenez ces décisions.

Décision Notes
Comment gérer les identités de vos ressources de bot dans Azure Vous pouvez utiliser une identité managée affectée par l’utilisateur, une inscription d’application à locataire unique ou une inscription d’application multilocataire. Pour plus d’informations, consultez Créer une ressource d’identité.
Dans quel(s) groupe(s) de ressources vous allez créer vos ressources de bot Tant que vous n’êtes pas familiarisé avec ce processus, nous vous recommandons d’utiliser un groupe de ressources. Pour plus d’informations, consultez Gérer les ressources Azure.
Que votre bot soit régional ou global Pour plus d'informations sur les bots régionaux, consultez la rubrique Régionalisation dans Azure AI Bot Service.

L'identité de votre bot peut être gérée dans Azure de différentes manières.

  • S'il s'agit d'une identité managée affectée par l'utilisateur, vous n'avez pas besoin de gérer vous-même les informations d'identification du bot.
  • S'il s'agit d'une application à locataire unique.
  • S'il s'agit d'une application multilocataire.

La prise en charge de l'identité managée affectée par l'utilisateur et des types d'applications à locataire unique a été ajoutée au kit de développement logiciel (SDK) Bot Framework pour C# et JavaScript dans la version 4.15.0. Ces types d'application ne sont pas pris en charge dans les autres langages ou dans Bot Framework Composer, Bot Framework Emulator ou ngrok.

Type d’application Support
Identité managée affectée par l’utilisateur Azure AI Bot Service et les kits de développement logiciel (SDK) C# et JavaScript
Locataire unique Azure AI Bot Service et les kits de développement logiciel (SDK) C# et JavaScript
Multilocataire Azure AI Bot Service, tous les langages du Kit de développement logiciel (SDK) Bot Framework, Composer, Emulator et ngrok

Important

Vous ne pouvez pas déployer les bots Python sur un groupe de ressources qui contient des services ou bots Windows. Toutefois, plusieurs bots Python peuvent être déployés sur le même groupe de ressources. Créez d’autres services, tels que les services Azure AI Services, dans un autre groupe de ressources.

Ressources Azure

Avant de pouvoir déployer votre bot, vous créez (ou approvisionnez) les ressources Azure dont il aura besoin. Pour certaines étapes, vous pouvez soit utiliser une ressource existante, soit en créer une.

Vous pouvez trouver utile de décider à l’avance des noms des nouvelles ressources que vous allez créer et des noms des ressources existantes que vous utiliserez. Votre bot utilisera ces types de ressources.

  • Abonnement Azure que vous allez utiliser pour approvisionner, publier et gérer le bot
  • Un ou plusieurs groupes de ressources
  • Une identité managée affectée par l’utilisateur ou une inscription d’application Microsoft Entra ID
  • Une ressource de plan App Service
  • Une ressource App Service
  • Une ressource Azure Bot

Informations utilisées entre les ressources

Lorsque vous créez des ressources dans Azure, Azure génère ou demande des ID, des mots de passe et d’autres informations dont vous aurez besoin dans les étapes ultérieures. Le tableau suivant répertorie les informations au-delà des noms de ressources que vous devez enregistrer, dans quelle étape elle est générée et dans quelles étapes elle est utilisée.

Attention

La plupart de ces identifiants et mots de passe sont des informations sensibles. Pour obtenir des informations générales sur la sécurité, consultez Instructions de sécurité de Bot Framework.

Information Généré ou trouvé Utilisé
ID client Se connecter et sélectionner un abonnement Utiliser Azure CLI pour créer une ressource App Service, Utiliser Azure CLI pour créer ou mettre à jour une ressource Azure Bot, Mettre à jour les paramètres de configuration du projet
Type d’application Créer une ressource d’identité Utiliser Azure CLI pour créer une ressource App Service, Utiliser Azure CLI pour créer ou mettre à jour une ressource Azure Bot, Mettre à jour les paramètres de configuration du projet
ID client Créer une ressource d’identité Utiliser Azure CLI pour créer une ressource App Service, Utiliser Azure CLI pour créer ou mettre à jour une ressource Azure Bot, Mettre à jour les paramètres de configuration du projet
URL du service d’application de base Utiliser Azure CLI pour créer une ressource App Service Utiliser Azure CLI pour créer ou mettre à jour une ressource Azure Bot
Nom d’App Service Utiliser Azure CLI pour créer une ressource App Service Publier votre bot sur Azure

Se connecter et sélectionner un abonnement

  1. Ouvrez une fenêtre de commandes.

  2. Connectez-vous à Azure.

    az login
    
    • Une fenêtre du navigateur s’ouvre. Terminez le processus de connexion.
    • Si l’opération s’effectue normalement, la commande génère une liste des abonnements auxquels votre compte a accès.
  3. Pour définir l’abonnement à utiliser, exécutez :

    az account set --subscription "<subscription>"
    

    Pour <l’abonnement>, utilisez l’ID ou le nom de l’abonnement à utiliser.

  4. Si vous créez une identité managée affectée par l’utilisateur ou un bot à locataire unique, enregistrez tenantId pour l’abonnement. Vous allez utiliser l’ID de locataire lors des étapes suivantes.

Conseil

Si vous devez travailler dans un cloud privé, consultez Gestion du cloud Azure avec Azure CLI.

Créer des groupes de ressources

Si vous n’avez pas encore de groupe de ressources approprié, utilisez la commande az group create pour créer les nouveaux groupes de ressources dont vous avez besoin.

az group create --name "<group>" --location "<region>"
Option Description
name Nom du groupe de ressources à créer.
location La région dans laquelle créer le groupe de ressources.

Pour plus d’informations, consultez le Guide pratique pour gérer des groupes de ressources Azure avec Azure CLI.

Créer une ressource d’identité

  1. Pour créer une identité managée affectée par l’utilisateur, utilisez la commande az identity create. Si l’opération s’effectue normalement, la commande génère une sortie JSON.

    az identity create --resource-group "<group>" --name "<identity>"
    
    Option Description
    resource-group Nom du groupe de ressources dans lequel créer l’identité.
    name Le nom de la ressource d’identité à créer.

    Pour plus d’informations, consultez la référence az identity.

  2. Enregistrez les valeurs dont vous aurez besoin dans les étapes ultérieures.

    1. Nom du groupe de ressources de la ressource d’identité
    2. Nom de la ressource d’identité
    3. clientId de la sortie de la commande

Créez les ressources avec des modèles ARM

Créez les ressources App Service et Azure Bot pour votre bot. Les deux étapes utilisent un modèle ARM et la commande Azure CLI az deployment group create pour créer la ressource ou les ressources.

  1. Créez une ressource App Service pour votre bot. L’App Service peut se trouver dans un plan App Service nouveau ou existant.

    Pour obtenir des instructions détaillées, consultez Utiliser Azure CLI pour créer un App Service.

  2. Créer une ressource Azure Bot pour votre bot.

    Pour obtenir des instructions détaillées, consultez Utiliser Azure CLI pour créer ou mettre à jour un Azure Bot.

Important

Ces étapes peuvent être effectuées dans n’importe quel ordre. Toutefois, si vous créez d’abord votre Azure Bot, vous devez mettre à jour son point de terminaison de messagerie après avoir créé votre ressource App Service.

Mettre à jour les paramètres de configuration du projet

Informations sur l'identité du bot

Suivez ces étapes pour ajouter des informations d'identité au fichier de configuration de votre bot. Le fichier diffère selon le langage de programmation que vous utilisez pour créer le bot.

Important

Les versions Java et Python du kit de développement logiciel (SDK) Bot Framework prennent uniquement en charge les bots multilocataires. Les versions C# et JavaScript prennent en charge les trois types d'applications pour gérer l'identité du bot.

Langage Nom de fichier Notes
C# appsettings.json Prend en charge les trois types d'applications pour gérer l'identité de votre bot.
JavaScript .env Prend en charge les trois types d'applications pour gérer l'identité de votre bot.
Java application.properties Prend uniquement en charge les bots multilocataires.
Python config.py Prend uniquement en charge les bots multilocataires. Fournissez les propriétés d'identité en tant qu'arguments aux appels de méthode os.environ.get.

Les informations d'identité que vous devez ajouter dépendent du type d'application du bot. Fournissez les valeurs suivantes dans votre fichier de configuration :

Uniquement disponible pour les bots C# et JavaScript.

Propriété Valeur
MicrosoftAppType UserAssignedMSI
MicrosoftAppId ID client de l'identité managée affectée par l'utilisateur.
MicrosoftAppPassword Non applicable. Laissez cette valeur vide pour un bot d'identité managée affecté par l'utilisateur.
MicrosoftAppTenantId L'identifiant du locataire de l'identité managée affectée par l'utilisateur.

Préparer les fichiers de votre projet

Préparez vos fichiers projet avant de pouvoir déployer votre bot.

  1. Basculez vers le dossier racine de votre projet. Pour C#, la racine est le dossier qui contient le fichier .csproj.

  2. Effectuez une régénération propre en mode publication.

  3. Si vous ne l’avez pas déjà fait, exécutez az bot prepare-deploy pour ajouter des fichiers requis à la racine de votre répertoire de code source local. Cette commande génère un fichier .deployment dans le dossier du projet de votre bot.

    az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "<my-cs-proj>"
    
    Option Description
    lang Langage ou runtime du bot. Utiliser Csharp.
    code-dir Répertoire dans lequel placer les fichiers de déploiement générés. Utilisez le dossier racine de votre projet. L’emplacement par défaut est le répertoire actif.
    proj-file-path Chemin d’accès au fichier .csproj pour votre bot, par rapport à l’option code-dir.
  4. Dans le dossier racine de votre projet, créez un fichier zip qui contient tous les fichiers et sous-dossiers.

Publier votre bot sur Azure

À ce stade, vous êtes prêt à déployer du code pour votre bot sur votre ressource App Service.

Remarque

Cette étape peut prendre quelques minutes. Il peut également s’écouler plusieurs minutes supplémentaires entre le moment où le déploiement se termine et le moment où le bot est disponible pour le test.

Exécutez la commande suivante à partir de la ligne de commande pour effectuer un déploiement push de fichier zip kudu pour une service d’application (application Web).

az webapp deployment source config-zip --resource-group "<resource-group-name>" --name "<name-of-app-service>" --src "<project-zip-path>"
Option Description
resource-group Nom du groupe de ressources Azure qui contient votre bot.
name Nom du service d’application utilisé précédemment.
src Chemin d’accès relatif ou absolu au fichier projet compressé que vous avez créé.

Conseil

Par défaut, cette commande est déployée sur l’emplacement de production. Utilisez le paramètre facultatif --slot pour spécifier un emplacement différent. Pour plus d’informations, consultez la référence de commande az webapp deployment source config-zip.

Tester dans Chat Web

  1. Dans votre navigateur, accédez au Portail Azure.
  2. Accédez à votre ressource de bot.
  3. Ouvrez le volet Tester dans Web Chat.
  4. Interagissez avec votre bot déployé.

Pour en savoir plus sur l’inscription d’un bot, consultez Inscrire un bot sur Bot Service.

Nettoyer les ressources

Si vous ne pensez pas publier cette application, supprimez les ressources associées en effectuant les étapes suivantes :

  1. Sur le portail Azure, ouvrez le groupe de ressources de votre bot.
    1. Cliquez sur Supprimer le groupe de ressources pour supprimer le groupe et toutes les ressources qu’il contient.
    2. Dans le volet de confirmation, saisissez le nom du groupe de ressources, puis sélectionnez Supprimer.
  2. Si vous avez créé une application à locataire unique ou multilocataire :
    1. Accédez au panneau Microsoft Entra ID.
    2. Recherchez l’inscription d’application que vous avez utilisée pour votre bot et supprimez-la.

Ressources supplémentaires

Consultez ces articles pour plus d’informations sur les applications et ressources Azure utilisées pour héberger un bot.

Objet Article
Azure CLI Qu’est-ce qu’Azure CLI ?
Gestion des abonnements Azure Guide pratique pour gérer les abonnements Azure avec Azure CLI
Régions Azure Régions et zones de disponibilité
Gestion des groupes de ressources et des ressources Manage Azure resources (Gérer des ressources Azure)
Identités managées Que sont les identités managées pour les ressources Azure ?
Application à locataire unique et application multilocataire Location dans Microsoft Entra ID
Applications Web App Service
Ressources de calcul pour les applications Web Plans App Service
Modèles Azure Resource Manager (modèles ARM) Qu’est-ce qu’un modèle ARM ? et Comment utiliser des modèles de déploiement Azure Resource Manager (ARM) avec Azure CLI
Facturation Azure Gestion de la facturation et des coûts

Fichiers Kudu

La commande de déploiement d’application Web utilise Kudu pour déployer des bots C#, JavaScript et Python. Quand vous utilisez l’API de déploiement à partir d’un fichier zip non configuré pour déployer le code de votre bot, le comportement est le suivant :

Par défaut, Kudu part du principe que les déploiements à partir de fichiers zip sont prêts à être exécutés et ne nécessitent aucune étape de génération supplémentaire pendant le déploiement, telle que npm install ou dotnet restore/dotnet publish.

Il est important d’inclure votre code généré et toutes les dépendances nécessaires dans le fichier zip déployé, sans quoi votre bot ne fonctionnera pas comme prévu. Pour plus d’informations, consultez la documentation Azure pour Déployer des fichiers dans App Service.

Étapes suivantes