Delen via


Node.js-bot configureren voor extensie

Vanaf 1 september 2023 is het raadzaam om de Azure Service Tag-methode te gebruiken voor netwerkisolatie. Het gebruik van DL-ASE moet worden beperkt tot zeer specifieke scenario's. Voordat u deze oplossing in een productieomgeving implementeert, raden we u aan uw ondersteuningsteam te raadplegen voor hulp.

VAN TOEPASSING OP: SDK v4

In dit artikel wordt beschreven hoe u een Node.js-bot bijwerkt om te werken met benoemde pipes en hoe u de Direct Line App Service-extensie inschakelt in de Azure-app Service-resource waar de bot wordt gehost.

Vereisten

  • Een Azure-account. Als u nog geen account hebt, maakt u een gratis account voordat u begint.
  • Een Node.js-bot geïmplementeerd in Azure.
  • Bot Framework SDK voor Node.js, 4.7 of hoger.

Direct Line App Service-extensie inschakelen

In deze sectie wordt beschreven hoe u de Direct Line App Service-extensie inschakelt met behulp van de App Service-extensiesleutel van de configuratie van het Direct Line-kanaal van uw bot.

Botcode bijwerken

Als u wilt toestaan dat uw app de Direct Line App Service-extensie Met de naam Pipe gebruikt:

  1. Bewerk het bestand van index.js uw bot.

    1. Zoek de lijn waar u de adapter van de bot maakt.

    2. Nadat de adapter is gemaakt, voegt u de volgende instructie toe, waarmee de App Service-naam uit de omgeving wordt opgehaald en de adapter wordt geïnstrueerd om verbinding te maken met de juiste benoemde pijp.

      • Als uw bot gebruikmaakt van de CloudAdapter (aanbevolen):

        adapter.connectNamedPipe(
            process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline',
            async (context) => {
                await myBot.run(context);
            },
            process.env.MicrosoftAppId,
            AuthenticationConstants.ToChannelFromBotOAuthScope);
        
      • Als uw bot gebruikmaakt van het afgeschafte BotFrameworkAdapter:

        adapter.useNamedPipe(async (context) => {
            await myBot.run(context);
            },
            process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline'
        );
        
    3. Uw wijzigingen opslaan.

  2. Bewerk het bestand van web.config uw bot om de handler en regel toe te voegen die nodig is voor de AspNetCore Direct Line App Service-extensie voor serviceaanvragen.

    1. Bewerk het bestand van web.config uw bot.

    2. Wijzig het kenmerk van enabled de webSocket tag in true.

      <webSocket enabled="true" />
      
    3. Voeg in de <handlers> sectie een registratie toe voor de volgende handler.

      <add name="aspNetCore" path="*/.bot/*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      
    4. Voeg in de <rewrite> sectie de volgende regel toe aan de lijst met regels.

      <!-- 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. Uw wijzigingen opslaan.

  3. Implementeer uw bijgewerkte bot opnieuw in Azure.

App Service-extensie voor bot Direct Line inschakelen

  1. Ga in Azure Portal naar uw Azure Bot-resource .

    1. Selecteer onder Instellingen Kanalen om de kanalen te configureren waaruit uw bot berichten accepteert.
    2. Als dit nog niet is ingeschakeld, selecteert u het kanaal Direct Line in de lijst met beschikbare kanalen om het kanaal in te schakelen.
    3. Nadat u Direct Line hebt ingeschakeld, selecteert u deze opnieuw op de pagina Kanalen.
    4. Selecteer het tabblad App Service-extensie .
    5. Selecteer onder App Service-extensiesleutels het oogpictogram naast de bijbehorende sleutel.
  2. Ga naar de startpagina en selecteer App Services bovenaan de pagina. U kunt ook het portalmenu weergeven en vervolgens het menu-item App Services selecteren. In Azure wordt de pagina App Services weergegeven.

  3. Voer in het zoekvak de naam van uw Azure Bot-resource in. Uw resource wordt weergegeven.

    Als u de muisaanwijzer boven het pictogram of het menu-item houdt, krijgt u een lijst met de laatst bekeken resources. Uw Azure Bot-resource wordt waarschijnlijk vermeld.

  4. Selecteer de resourcekoppeling.

    1. Selecteer in de sectie Instellingen het menu-item Configuratie.

    2. Voeg in het rechterdeelvenster de volgende instellingen toe:

      Naam Waarde
      DirectLineExtensionKey De waarde van de App Service-extensiesleutel die u eerder hebt gekopieerd.
      DIRECTLINE_EXTENSION_VERSION nieuwste
    3. Als uw bot wordt gehost in een onafhankelijke of anderszins beperkte Azure-cloud, waar u geen toegang hebt tot Azure via de openbare portal, moet u ook de volgende instelling toevoegen:

      Naam Waarde
      DirectLineExtensionABSEndpoint Het eindpunt dat specifiek is voor de Azure-cloud waarin uw bot wordt gehost. Voor de USGov-cloud is het eindpunt https://directline.botframework.azure.us/v3/extensionbijvoorbeeld .
    4. Selecteer in de sectie Configuratie de sectie Algemene instellingen en schakel websockets in.

    5. Selecteer Opslaan om de instellingen op te slaan. Hiermee start u de Azure-app-service opnieuw op.

Controleer of de Direct Line-extensie en de bot zijn geconfigureerd

Ga in uw browser naar https://<your_app_service>.azurewebsites.net/.bot. Als alles klopt, retourneert de pagina de volgende JSON-inhoud:

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
  • v toont de buildversie van de Direct Line App Service-extensie.
  • k geeft aan of de extensie een extensiesleutel kan lezen uit de configuratie.
  • geïnitialiseerd geeft aan of de extensie metagegevens van de bot kan downloaden van Azure AI Bot Service.
  • ib geeft aan of de extensie een binnenkomende verbinding met de bot tot stand kon brengen.
  • ob geeft aan of de extensie een uitgaande verbinding van de bot tot stand kon brengen.

Problemen oplossen

  • Als de ib - en ob-waarden die door het .bot-eindpunt worden weergegeven onwaar zijn, kunnen de bot en de Direct Line App Service-extensie geen verbinding maken met elkaar.

    1. Controleer de code voor het gebruik van benoemde pijpen is toegevoegd aan de bot.
    2. Controleer of de bot kan worden opgestart en uitgevoerd. Handige hulpprogramma's zijn Testen in WebChat, verbinding maken met een extra kanaal, externe foutopsporing of logboekregistratie.
    3. Start de hele Azure-app Service binnen de bot opnieuw om ervoor te zorgen dat alle processen worden opgeschoond.
  • Als de geïnitialiseerde waarde van het .bot-eindpunt onwaar is, kan de App Service-extensie direct line niet valideren of de App Service-extensiesleutel die is toegevoegd aan de toepassings-Instellingen van de bot hierboven.

    1. Controleer of de waarde juist is ingevoerd.
    2. Schakel over naar de alternatieve extensiesleutel die wordt weergegeven op de pagina Directe regel configureren van uw bot.

Volgende stappen