設定 Node.js Bot 擴充功能

適用于: SDK v4

本文說明如何更新 bot 以使用 具名管道,以及如何在裝載 bot 的 Azure App Service 資源中啟用 Direct Line app service 延伸模組。

必要條件

若要執行接下來所述的步驟,您需要在 Azure 中部署 bot。

啟用 Direct Line app service 延伸模組

本節說明如何使用 bot Direct Line 通道設定中的 app service 延伸模組,來啟用 Direct Line app service 延伸模組。

更新 Node.js Bot 以使用 Direct Line App Service 擴充功能

  1. 需要 BotBuilder v 4.7.0 或更新版本,才能使用具有 Direct Line App Service 擴充功能的 Node.js bot。

  2. 允許您的應用程式使用 名為管道的 Direct Line App Service 擴充功能

    在介面卡和 bot 的指派下,更新 bot 的 index.js () 以包含下列程式碼,從環境中提取 App Service 名稱,並指示介面卡連線到適當的具名管道:

    
    adapter.useNamedPipe(async (context) => {
        await myBot.run(context);
        },
        process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline'
    );
    
  3. 儲存 index.js 檔案。

  4. 更新檔案 Web.Config ,以將 AspNetCore Direct Line App Service 延伸模組所需的處理常式和規則新增至服務要求:

    找出 Web.Config bot 目錄中的檔案 wwwroot ,並修改內容以將下列專案包含在 HandlersRules 區段中:

    <handlers>      
          <add name="aspNetCore" path="*/.bot/*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    
    <rewrite>
      <rules>
        <!-- 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>
      </rules>
    </rewrite>
    
  5. 將 bot 發佈 至您的 Azure Web 應用程式 bot 資源。

啟用 bot Direct Line app service 延伸模組

  1. 在 Azure 入口網站中,找出您的 Web 應用程式 Bot 資源。

  2. 從 [ bot 管理 ] 下的左側面板功能表按一下 [ 通道 ],以設定 Bot 接受訊息的 Azure bot 服務 通道。

  3. 如果尚未啟用,請按一下 Direct Line 通道,並遵循指示來啟用通道。

  4. 在 [ 連接到頻道] 資料表中,按一下 Direct Line 資料列上的 [ 編輯 ] 連結。

  5. 向下捲動至 [App Service 擴充功能金鑰]區段。

  6. 按一下 [ 顯示 ] 連結,以顯示其中一個金鑰。 您將在下列步驟中使用此值。

    App Service 擴充功能金鑰

  7. 從左側面板功能表的 [應用程式設定] 區段下,按一下 [設定 ] 專案。

  8. 在右面板中,新增下列新設定:

    Name
    DirectLineExtensionKey <App_Service_Extension_Key>
    DIRECTLINE_EXTENSION_VERSION 最新

    其中 App_Service_Extension_Key 是您稍早儲存的值。

  9. 如果您的 bot 裝載于主權或受限制的 Azure 雲端 (亦即您未透過 公用入口網站 存取 azure) 您也必須新增下列新設定:

    Name
    DirectLineExtensionABSEndpoint <URL_of_Direct_Line_App_Gateway>

    其中 URL_of_Direct_Line_App_Gateway 是您的 bot 所裝載的 Azure 雲端專用的。 若為美國政府,此值為 https://directline.botframework.azure.us/v3/extension

  10. 在 [設定] 區段中 ,按一下 [ 一般 設定] 區段,然後開啟 Web 通訊端

  11. 按一下 [儲存] 以儲存設定。 這會使 Azure App Service 重新啟動。

確認 Direct Line 的應用程式延伸模組和已設定的 bot

在瀏覽器中,導覽至 https://<your_app_service>.azurewebsites.net/.bot。 如果一切都正確無誤,頁面將會傳回下列 JSON 內容:{"v":"123","k":true,"ib":true,"ob":true,"initialized":true}。 這是您在 一切運作正常 時所取得的資訊,其中

  • v 顯示 Direct Line App Service 擴充功能 (ASE) 的組建版本。
  • k 決定 Direct Line ASE 是否可以從其組態中讀取 App Service 擴充功能金鑰。
  • initialized 可決定 Direct Line ASE 是否可以使用 App Service 擴充功能金鑰從 Azure Bot Service 下載 Bot 中繼資料
  • ib 決定 Direct Line ASE 是否可以與 Bot 建立輸入連線。
  • ob 可決定 Direct Line ASE 是否可以與 Bot 建立輸出連線。

疑難排解

  • 如果 *. bot 端點 所顯示的 ibob 值為 false,這表示 bot 和 Direct Line app service 延伸模組無法彼此連線。

    1. 再次檢查使用具名管道的程式碼已新增至 bot。
    2. 確認 bot 能夠完全啟動並執行。 有用的工具是 在 WebChat 中測試、連接額外的通道、遠端偵錯程式或記錄。
    3. 重新開機 bot 裝載的整個 Azure App Service ,以確保所有進程都能正常啟動。
  • 如果 bot 端點初始化 值為 false,表示 Direct Line app service 延伸模組無法驗證新增至上述 bot 應用程式設定App Service 擴充金鑰

    1. 確認已正確輸入值。
    2. 切換至 bot Direct Line 通道設定頁面 上顯示的替代 App Service 擴充金鑰

下一步