Comme prérequis, vous devez disposer :
- Net Core 3.1
- Des modèles de Bot .NET Core. Pour les installer, veuillez suivre le tutoriel suivant : Créer et débogueur un bot avec le CLI et Visual Studio Code
- Du CLI Azure
1. Créer le projet de démarrage
Pour commencer, nous allons créer un projet de démarrage en utilisant le modèle EchoBot. Vous devez donc ouvrir l’invite de commande et exécuter la commande suivante pour créer le bot :
Code : | Sélectionner tout |
Dotnet new echobot -n EchoBot1
Le dossier racine du bot contient par défaut un répertoire deploymentTemplate. Ce dernier contient le template ARM permettant de provisionner et déployer dans Azure les ressources nécessaires à l’exécution du bot. Le déploiement des ressources et de l’application peuvent se faire en utilisant le CLI Azure.
2. Connexion à Azure
Nous allons utiliser le CLI Azure pour nous connecter à Microsoft Azure. Pour cela, vous devez saisir la commande suivante dans l’invite de commandes :
Code : | Sélectionner tout |
az login
3. Définir la souscription à utiliser
Vous devez maintenant définir la souscription qui va être utilisée pour déployer vos ressources, en utilisant la commande suivante :
Code : | Sélectionner tout |
az account set --subscription "<azure-subscription>"
Le paramètre « subscription » doit être le nom de la souscription Azure ou l’identifiant de cette dernière.
Si vous avez plusieurs souscriptions et vous n’êtes pas certain sur la souscription à utiliser, vous pouvez exécuter la commande suivante pour lister les souscriptions de votre abonnement Azure
Code : | Sélectionner tout |
az account list
A cette étape, nous allons créer une application Azure Active Directory qui sera utilisée par le bot. Cette application va permettre de gérer l’accès à notre bot à travers divers canaux de communication, dont les Web Chat.
Vous allez utiliser la commande suivante pour créer l’application Azure AD :
Code : | Sélectionner tout |
az ad app create --display-name "displayName" --password "AtLeastSixteenCharacters_0" --available-to-other-tenants
- display-name : par le nom de l’application ;
- password : mot de passe (également appelé secret client) de l’application. Il s’agit du mot de passe que vous créez pour cette ressource. Il doit comporter au moins 16 caractères, contenir au moins un caractère alphabétique, minuscule ou majuscule, et contenir au moins un caractère spécial;
- available-to-other-tenants : indique que l’application peut être utilisée à partir de n’importe quel tenant Azure AD.
Une fois la commande exécutée, un code JSON sera généré et affiché dans la fenêtre de l’invite de commandes. Copiez la valeur de appId et enregistrez-la. Vous allez utiliser cette dernière et le mot de passe défini pour l’application, pour affecter des valeurs respectivement aux paramètres appId et appSecret.
5. Déployer via ARM Template
Nous allons créer un nouveau groupe de ressources dans Azure, puis nous allons utiliser le template ARM de notre projet pour créer et provisionner les ressources correspondantes. Nous devons définir les paramètres pour la création d’un nouveau plan de service (App Service Plan), de la Web App et du Bot Channels Registration.
La commande à exécuter est la suivante :
Code : | Sélectionner tout |
az deployment create --name "<name-of-deployment>" --template-file " deploymentTemplates\template-with-new-rg.json" --location "location-name" --parameters appId="<msa-app-guid>" appSecret="<msa-app-password>" botId="<id-or-name-of-bot>" botSku=F0 newAppServicePlanName="<name-of-app-service-plan>" newWebAppName="<name-of-web-app>" groupName="<new-group-name>" groupLocation="<location>" newAppServicePlanLocation="<location>"
Vous devez renseigner les options suivantes :
name : Nom qui sera utilisé par le Bot Channels Registration
template-file : chemin du template ARM. Le fichier template-with-new-rg.json est fourni dans le dossier deploymentTemplates du projet de bot. Il s’agit d’un chemin menant à un fichier de Template existant.
Location : Centre de données de déploiement des ressources. Vous pouvez utiliser la commande : az account list-locations pour visualiser les centres de données disponibles et sélectionner celui que vous souhaitez utiliser.
Parameters : Paramètres de déploiement, fourni sous la forme d’une liste de paires clé-valeur. Entrez les valeurs de paramètre suivantes :
- appId - Valeur app id générée à l’étape précédente.
- appSecret - Mot de passe que vous avez fourni à l’étape précédente.
- botId - Nom de la ressource d’inscription Bot Channels Registration à créer. Il doit être globalement unique. Il est utilisé comme ID de bot non modifiable. Il est également utilisé comme nom d’affichage par défaut et peut être modifié.
- botSku - Niveau tarifaire. Nous allons utiliser F0 qui est gratuit.
- newAppServicePlanName - Nom du nouveau plan de service d’application.
- newWebAppName - Nom de la Web App.
- groupName - Nom du nouveau groupe de ressources.
- groupLocation - Emplacement du groupe de ressources Azure.
- newAppServicePlanLocation - Emplacement du plan de service d’application.
6. Préparer son code pour le déploiement
Azure CLI utilise le service de build Kudu pour générer et déployer votre application dans Azure. Avant le déploiement nous devons créer les fichiers IIS/Kudu nécessaires au déploiement.
Code : | Sélectionner tout |
az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "EchoBot1.csproj"
Cette commande génère un fichier .deployment dans le dossier du projet de votre bot.
7. compressez manuellement le répertoire du code
Nous allons utiliser le déploiement Zip. Cette méthode déploiement avec Kudu suppose par défaut que le Zip contient tous les fichiers et dépendances de l’application. De ce fait aucune étape de génération dont dotnet restore/dotnet publish n’est exécutée pendant le déploiement.
De ce fait, avant de créer le fichier Zip de déploiement nous devons d’abord générer l’application en utilisant la commande dotnet Build.
Dans le dossier du projet, sélectionnez tous les fichiers et dossiers du répertoire et créez le dossier compressé code.zip. En procédant ainsi, un seul fichier zip contenant tous les fichiers et dossiers sélectionnés est créé. Si l’emplacement de votre dossier racine est incorrect, l’exécution du bot échouera dans le portail Azure.
8. Déploiement dans Azure
À ce stade, nous sommes prêts à déployer le code sur l’application web Azure. Exécutez la commande suivante à partir de l’invite de commande pour effectuer un déploiement du avec Kudu.
Code : | Sélectionner tout |
az webapp deployment source config-zip --resource-group "<resource-group-name>" --name "<name-of-web-app>" --src "code.zip"
- resource-group : Nom du groupe de ressources Azure qui contient votre bot. (Il s’agit du groupe de ressources que vous avez utilisé ou créé lors de la création de l’inscription de l’application pour votre bot.)
- name : Nom de l’application web utilisée précédemment.
- Src : Chemin du fichier projet compressé que vous avez créé.
9. Tester dans le Web Chat du portail Azure
- Dans votre navigateur, accédez au Portail Azure.
- Dans le panneau de gauche, cliquez sur Groupes de ressources.
- Dans le panneau de droite, recherchez votre groupe.
- Cliquez sur le nom de votre groupe.
- Cliquez sur le lien Bot Channels Registration.
- Dans le panneau Bot Channels Registration, cliquez sur Tester dans Web Chat. Sinon, dans le panneau de droite, cliquez sur la zone Test.
Vous venez de ployer votre bot dans Azure en utilisant Azure CLI. Pour en savoir plus sur Azure Bot Service, veuillez vous référer à la documentation officielle : https://docs.microsoft.com/en-us/azu...ot-service-4.0.