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:
Bewerk het bestand van
index.js
uw bot.Zoek de lijn waar u de adapter van de bot maakt.
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' );
Uw wijzigingen opslaan.
Bewerk het bestand van
web.config
uw bot om de handler en regel toe te voegen die nodig is voor deAspNetCore
Direct Line App Service-extensie voor serviceaanvragen.Bewerk het bestand van
web.config
uw bot.Wijzig het kenmerk van
enabled
dewebSocket
tag intrue
.<webSocket enabled="true" />
Voeg in de
<handlers>
sectie een registratie toe voor de volgende handler.<add name="aspNetCore" path="*/.bot/*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
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>
Uw wijzigingen opslaan.
Implementeer uw bijgewerkte bot opnieuw in Azure.
App Service-extensie voor bot Direct Line inschakelen
Ga in Azure Portal naar uw Azure Bot-resource .
- Selecteer onder Instellingen Kanalen om de kanalen te configureren waaruit uw bot berichten accepteert.
- Als dit nog niet is ingeschakeld, selecteert u het kanaal Direct Line in de lijst met beschikbare kanalen om het kanaal in te schakelen.
- Nadat u Direct Line hebt ingeschakeld, selecteert u deze opnieuw op de pagina Kanalen.
- Selecteer het tabblad App Service-extensie .
- Selecteer onder App Service-extensiesleutels het oogpictogram naast de bijbehorende sleutel.
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.
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.
Selecteer de resourcekoppeling.
Selecteer in de sectie Instellingen het menu-item Configuratie.
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 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/extension
bijvoorbeeld .Selecteer in de sectie Configuratie de sectie Algemene instellingen en schakel websockets in.
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.
- Controleer de code voor het gebruik van benoemde pijpen is toegevoegd aan de bot.
- 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.
- 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.
- Controleer of de waarde juist is ingevoerd.
- Schakel over naar de alternatieve extensiesleutel die wordt weergegeven op de pagina Directe regel configureren van uw bot.