Konfigurace robota Node.js pro rozšíření
Od 1. září 2023 důrazně doporučujeme použít metodu značky služby Azure pro izolaci sítě. Využití DL-ASE by mělo být omezené na vysoce specifické scénáře. Před implementací tohoto řešení v produkčním prostředí doporučujeme poradit se s týmem podpory, kde najdete pokyny.
PLATÍ PRO: SDK v4
Tento článek popisuje, jak aktualizovat robota Node.js tak, aby fungoval s pojmenovanými kanály a jak povolit rozšíření Direct Line App Service v prostředku služby Aplikace Azure, kde je robot hostovaný.
Předpoklady
- Účet Azure. Pokud ho ještě nemáte, vytvořte si před zahájením bezplatný účet .
- Robot Node.js nasazený v Azure.
- Sada SDK služby Bot Framework pro Node.js, 4.7 nebo novější
Povolení rozšíření Direct Line App Service
Tato část popisuje, jak povolit rozšíření Direct Line App Service pomocí klíče rozšíření služby App Service z konfigurace kanálu Direct Line vašeho robota.
Aktualizace kódu robota
Pokud chcete aplikaci povolit používání rozšíření Direct Line App Service s názvem Pipe:
Upravte soubor robota
index.js
.Vyhledejte čáru, do které vytvoříte adaptér robota.
Po vytvoření adaptéru přidejte následující příkaz, který stáhne název služby App Service z prostředí a dá adaptéru pokyn, aby se připojil k příslušnému pojmenovaném kanálu.
Pokud váš robot používá
CloudAdapter
(doporučeno):adapter.connectNamedPipe( process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline', async (context) => { await myBot.run(context); }, process.env.MicrosoftAppId, AuthenticationConstants.ToChannelFromBotOAuthScope);
Pokud váš robot používá zastaralé
BotFrameworkAdapter
:adapter.useNamedPipe(async (context) => { await myBot.run(context); }, process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline' );
Uloží vaše změny.
Upravte soubor robota
web.config
a přidejte do žádostí o služby obslužnou rutinuAspNetCore
a pravidlo potřebné rozšířením Direct Line App Service.Upravte soubor robota
web.config
.webSocket
Změňte atribut značkyenabled
natrue
.<webSocket enabled="true" />
<handlers>
V části přidejte registraci pro následující obslužnou rutinu.<add name="aspNetCore" path="*/.bot/*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
<rewrite>
V části přidejte do seznamu pravidel následující pravidlo.<!-- 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>
Uloží vaše změny.
Znovu nasaďte aktualizovaného robota do Azure.
Povolení rozšíření služby App Service direct line robota
Na webu Azure Portal přejděte k prostředku robota Azure.
- V části Nastavení vyberte Kanály a nakonfigurujte kanály, ze které robot přijímá zprávy.
- Pokud ještě není povolený, vyberte kanál Direct Line ze seznamu dostupných kanálů a kanál povolte.
- Po povolení přímé čáry ji znovu vyberte na stránce Kanály .
- Vyberte kartu rozšíření služby App Service.
- V části Klíče rozšíření služby App Service vyberte ikonu oka vedle odpovídajícího klíče.
Přejděte na domovskou stránku a v horní části stránky vyberte App Services . Případně zobrazte nabídku portálu a pak vyberte položku nabídky App Services . Azure zobrazí stránku App Services .
Do vyhledávacího pole zadejte název prostředku robota Azure. Váš prostředek bude uvedený.
Všimněte si, že pokud najedete myší na ikonu nebo položku nabídky, zobrazí se seznam naposledy zobrazených prostředků. Váš prostředek Azure Bot bude pravděpodobně uvedený.
Vyberte odkaz na prostředek.
V části Nastavení vyberte položku nabídky Konfigurace.
Na pravém panelu přidejte následující nastavení:
Jméno Hodnota DirectLineExtensionKey Hodnota klíče rozšíření služby App Service, který jste zkopírovali dříve. DIRECTLINE_EXTENSION_VERSION nejnovější Pokud je robot hostovaný v suverénním nebo jinak omezeném cloudu Azure, kde nemáte přístup k Azure prostřednictvím veřejného portálu, musíte také přidat následující nastavení:
Jméno Hodnota DirectLineExtensionABSEndpoint Koncový bod specifický pro cloud Azure, ve které je váš robot hostovaný. Například pro cloud USGov je https://directline.botframework.azure.us/v3/extension
koncový bod .V části Konfigurace vyberte oddíl Obecné nastavení a zapněte webové sokety.
Vyberte Uložit a nastavení se uloží. Tím se restartuje služba Aplikace Azure Service.
Potvrďte konfiguraci rozšíření Direct Line a robota.
V prohlížeči přejděte na https://<your_app_service>.azurewebsites.net/.bot
. Pokud je všechno správné, stránka vrátí následující obsah JSON:
{"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
- v ukazuje verzi sestavení rozšíření Direct Line App Service.
- K označuje, jestli rozšíření dokázalo přečíst klíč rozšíření z jeho konfigurace.
- Inicializovaná inicializace označuje, jestli rozšíření mohlo stáhnout metadata robota z Azure AI Bot Service.
- Ib označuje, zda rozšíření bylo schopno navázat příchozí připojení k robotovi.
- ob označuje, jestli rozšíření mohlo navázat odchozí připojení z robota.
Řešení problému
Pokud jsou hodnoty ib a ob zobrazené koncovým bodem .bot false, robot a rozšíření Direct Line App Service se k sobě nemůžou připojit.
- Pečlivě zkontrolujte, jestli se do robota přidal kód pro použití pojmenovaných kanálů.
- Ověřte, že robot může spustit a spustit. Užitečné nástroje jsou Test v WebChatu, připojení dalšího kanálu, vzdálené ladění nebo protokolování.
- Restartujte celou službu Aplikace Azure Service, ve které je robot hostovaný, aby se zajistilo čisté spuštění všech procesů.
Pokud je inicializovaná hodnota koncového bodu .bot false, rozšíření Direct Line App Service nemůže ověřit klíč rozšíření služby App Service přidaný do aplikace robota Nastavení výše.
- Ověřte, že byla hodnota zadána správně.
- Přepněte na alternativní klíč rozšíření zobrazený na stránce Konfigurovat přímý řádek robota.