IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Blog de Hinault Romaric (.NET Core, ASP.NET Core, Azure, DevOps)

[Actualité] Déployer un bot sur Microsoft Azure avec le CLI

Noter ce billet
par , 23/12/2020 à 14h29 (2548 Affichages)
Dans ce billet de blog, nous verrons comment déployer un agent conversationnel sur Azure en utilisant le CLI.

Comme prérequis, vous devez disposer :




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 - Visualiser dans une fenêtre à part
Dotnet new echobot -n EchoBot1
Un projet .Net Core sera créé dans le dossier EchoBot1 avec le code minimal pour un bot qui retourne à l’utilisateur dans une discussion ce que ce dernier a saisi. Positionnez-vous dans le répertoire racine du projet en utilisant la commande cd :

Nom : img1.PNG
Affichages : 1628
Taille : 17,1 Ko


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 :

Un nouvel onglet va s’ouvrir dans votre navigateur. Connectez- vous à votre compte Microsoft Azure.

Nom : img2.PNG
Affichages : 1514
Taille : 32,8 Ko

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 - Visualiser dans une fenêtre à part
az account set --subscription "<azure-subscription>"
Nom : img3.PNG
Affichages : 1483
Taille : 12,1 Ko

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

4. Créer une inscription d’application dans Azure AD

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 - Visualiser dans une fenêtre à part
az ad app create --display-name "displayName" --password "AtLeastSixteenCharacters_0" --available-to-other-tenants
Vous devez renseigner les paramètres suivants :

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

Nom : img4.png
Affichages : 1564
Taille : 32,7 Ko


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 - Visualiser dans une fenêtre à part
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.


Nom : img5.PNG
Affichages : 1491
Taille : 64,7 Ko

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 - Visualiser dans une fenêtre à part
az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "EchoBot1.csproj"
Nom : img6.PNG
Affichages : 1509
Taille : 18,8 Ko

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 - Visualiser dans une fenêtre à part
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éé.


Nom : img7.PNG
Affichages : 1484
Taille : 53,8 Ko


9. Tester dans le Web Chat du portail Azure

  1. Dans votre navigateur, accédez au Portail Azure.
  2. Dans le panneau de gauche, cliquez sur Groupes de ressources.
  3. Dans le panneau de droite, recherchez votre groupe.
  4. Cliquez sur le nom de votre groupe.
    Nom : img8.PNG
Affichages : 1476
Taille : 41,9 Ko
  5. Cliquez sur le lien Bot Channels Registration.
  6. Dans le panneau Bot Channels Registration, cliquez sur Tester dans Web Chat. Sinon, dans le panneau de droite, cliquez sur la zone Test.


Nom : img9.png
Affichages : 1480
Taille : 47,2 Ko

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.

Envoyer le billet « Déployer un bot sur Microsoft Azure avec le CLI » dans le blog Viadeo Envoyer le billet « Déployer un bot sur Microsoft Azure avec le CLI » dans le blog Twitter Envoyer le billet « Déployer un bot sur Microsoft Azure avec le CLI » dans le blog Google Envoyer le billet « Déployer un bot sur Microsoft Azure avec le CLI » dans le blog Facebook Envoyer le billet « Déployer un bot sur Microsoft Azure avec le CLI » dans le blog Digg Envoyer le billet « Déployer un bot sur Microsoft Azure avec le CLI » dans le blog Delicious Envoyer le billet « Déployer un bot sur Microsoft Azure avec le CLI » dans le blog MySpace Envoyer le billet « Déployer un bot sur Microsoft Azure avec le CLI » dans le blog Yahoo

Commentaires