Partager via


Configurer un bot Node.js pour l’extension

À compter du 1er septembre 2023, il est fortement recommandé d’utiliser la méthode Étiquette de service Azure pour l’isolement réseau. L’utilisation de DL-ASE doit se limiter à des scénarios très spécifiques. Avant de mettre en œuvre cette solution dans un environnement de production, nous vous recommandons de demander conseil à votre équipe de support.

S’APPLIQUE À : SDK v4

Cet article explique comment mettre à jour un bot Node.js pour qu’il fonctionne avec des canaux nommés et comment activer l’extension App Service Direct Line dans la ressource Azure App Service où le bot est hébergé.

Prérequis

  • Un compte Azure. Si vous n’en avez pas encore, créez un compte gratuit avant de commencer.
  • Bot Node.js déployé dans Azure.
  • SDK Bot Framework pour Node.js4.7 ou version ultérieure.

Activer l’extension App Service Direct Line

Cette section explique comment activer l’extension App Service Direct Line à l’aide de la clé d’extension App Service à partir de la configuration de canal Direct Line de votre bot.

Mettre à jour le code du bot

Pour autoriser votre application à utiliser le canal nommé Extension App Service Direct Line :

  1. Modifiez le fichier index.js de votre bot.

    1. Recherchez la ligne dans laquelle vous créez l’adaptateur du bot.

    2. Une fois l’adaptateur créé, ajoutez l’instruction suivante, qui extrait le nom App Service de l’environnement et indique à l’adaptateur de se connecter au canal nommé approprié.

      • Si votre bot utilise le CloudAdapter (recommandé) :

        adapter.connectNamedPipe(
            process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline',
            async (context) => {
                await myBot.run(context);
            },
            process.env.MicrosoftAppId,
            AuthenticationConstants.ToChannelFromBotOAuthScope);
        
      • Si votre bot utilise le BotFrameworkAdapter déprécié :

        adapter.useNamedPipe(async (context) => {
            await myBot.run(context);
            },
            process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline'
        );
        
    3. Enregistrez vos modifications.

  2. Modifiez le fichier web.config de votre bot en y ajoutant le gestionnaire AspNetCore dont a besoin l’extension App Service Direct Line pour traiter les demandes de service.

    1. Modifiez le fichier web.config de votre bot.

    2. Remplacez l’attribut enabled de la balise webSocket par true.

      <webSocket enabled="true" />
      
    3. Dans la section <handlers>, ajoutez une inscription pour le gestionnaire suivant.

      <add name="aspNetCore" path="*/.bot/*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      
    4. Dans la section <rewrite>, ajoutez la règle suivante à la liste des règles.

      <!-- Do not interfere with Direct Line App Service extension requests. (This rule should be as high in the rules section as possible to avoid conflicts.) -->
      <rule name ="DLASE" stopProcessing="true">
        <conditions>
          <add input="{REQUEST_URI}" pattern="^/.bot"/>
        </conditions>
      </rule>
      
    5. Enregistrez vos modifications.

  3. Déployez à nouveau votre bot mis à jour dans Azure.

Activez l’extension App Service Direct Line de votre bot

  1. Dans le portail Azure, accédez à votre ressource Azure Bot.

    1. Sous Paramètres sélectionnez Canaux pour configurer les canaux à partir desquels votre bot accepte les messages.
    2. S’il n’est pas déjà activé, sélectionnez le canal Direct Line dans la liste des canaux disponibles pour activer le canal.
    3. Après avoir activé Direct Line, sélectionnez-le à nouveau dans la page Canaux.
    4. Sélectionnez l’onglet Extension App Service.
    5. Sous Clés d’extension App Service, sélectionnez l’icône d’œil en regard de la clé correspondante.
  2. Accédez à la page d’accueil et sélectionnez App Services en haut de la page. Vous pouvez également afficher le menu du portail, puis sélectionner l’élément de menu App Services. Azure affiche la page App Services.

  3. Dans la zone de recherche, saisissez le nom de votre ressource Azure Bot. Votre ressource est répertoriée.

    Notez que si vous passez votre curseur sur l’icône ou sur l’élément de menu, vous obtenez la liste de vos dernières ressources consultées. Votre ressource Azure Bot sera probablement répertoriée.

  4. Sélectionnez votre lien de ressource.

    1. Dans la section Paramètres, sélectionnez l’élément de menu Configuration.

    2. Dans le volet de droite, ajoutez les paramètres suivants :

      Nom Valeur
      DirectLineExtensionKey Valeur de la clé d’extension App Service que vous avez copiée précédemment.
      DIRECTLINE_EXTENSION_VERSION latest
    3. Si votre bot est hébergé dans un cloud Azure souverain ou restreint, où vous n’avez pas accès à Azure via le portail public, vous devez également ajouter le paramètre suivant :

      Nom Valeur
      DirectLineExtensionABSEndpoint Le point de terminaison spécifique au cloud Azure dans lequel votre bot est hébergé. Par exemple, pour le cloud USGov, le point de terminaison est https://directline.botframework.azure.us/v3/extension.
    4. Depuis la section Configuration, sélectionnez la section de paramètres Général et activez les sockets Web.

    5. Sélectionnez Enregistrer pour enregistrer les paramètres. Ceci redémarre Azure App Service.

Vérifiez que l’extension Direct Line et le bot sont configurés

Dans votre navigateur, accédez à https://<your_app_service>.azurewebsites.net/.bot. Si tout est correct, la page renvoie le contenu JSON suivant :

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
  • v affiche la version de build de l’extension App Service Direct Line.
  • k indique si l’extension a pu lire une clé d’extension à partir de sa configuration.
  • initialisé indique si l’extension a pu télécharger les métadonnées du bot à partir d’Azure AI Bot Service.
  • ib indique si l’extension a pu établir une connexion entrante au bot.
  • ob indique si l’extension a pu établir une connexion sortante à partir du bot.

Dépannage

  • Si les valeurs ib et ob affichées par le point de terminaison .bot sont fausses, le bot et l’extension App Service Direct Line ne peuvent pas se connecter les uns aux autres.

    1. Vérifiez que le code d’utilisation de canaux nommés a été ajouté au bot.
    2. Vérifiez que le bot est opérationnel. Les outils utiles sont Tester dans le Chat Web, connexion d’un canal supplémentaire, débogage à distance ou journalisation.
    3. Redémarrez l’intégralité d’Azure App Service dans laquelle le bot est hébergé pour vous assurer le démarrage de tous les processus.
  • Si la valeur initialisée du point de terminaison .bot est fausse, l’extension App Service Direct Line ne peut pas valider la clé d’extension App Service ajoutée aux Paramètres d’application du bot ci-dessus.

    1. Vérifiez que la valeur a été correctement saisie.
    2. Basculez vers la clé d’extension alternative affichée dans la page Configurer Direct Line de votre bot.

Étapes suivantes