拡張機能のための Node.js ボットの構成

2023 年 9 月 1 日から、ネットワークの分離に Azure サービス タグ メソッドを使用することを強くお勧めします。 DL-ASE の稼働率は、非常に具体的なシナリオに限定する必要があります。 運用環境でこのソリューションを実装する前に、サポート チームに相談してガイダンスを受けることをお勧めします。

この記事の対象: SDK v4

この記事では、名前付きパイプを使って機能するように Node.js ボットを更新する方法、およびボットがホストされている Azure App Service リソースで Direct Line App Service 拡張機能を有効にする方法について説明します。

前提条件

  • Azure アカウント。 まだお持ちでない場合は、開始する前に無料アカウントを作成してください。
  • Azure にデプロイされた Node.js ボット。
  • Node.js 4.7 以降用の Bot Framework SDK。

Direct Line App Service 拡張機能を有効にする

このセクションでは、ボットの Direct Line チャンネル構成から App Service 拡張キーを使用して、Direct Line App Service 拡張機能を有効にする方法を説明します。

ボット コードを更新する

アプリで Direct Line App Service 拡張機能の名前付きパイプ を使用できるようにするには:

  1. ボットの index.js ファイルを編集する。

    1. ボットのアダプターを作成する行を見つけます。

    2. アダプターが作成されたら、次のステートメントを追加します。これにより、App Service 名が環境からプルされ、適切な名前付きパイプに接続するようにアダプターに指示されます。

      • ボットが CloudAdapter を使用している場合 (推奨):

        adapter.connectNamedPipe(
            process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline',
            async (context) => {
                await myBot.run(context);
            },
            process.env.MicrosoftAppId,
            AuthenticationConstants.ToChannelFromBotOAuthScope);
        
      • お使いのボットが非推奨 BotFrameworkAdapter を使用している場合:

        adapter.useNamedPipe(async (context) => {
            await myBot.run(context);
            },
            process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline'
        );
        
    3. 変更を保存します。

  2. ボットの web.config ファイルを編集して、Direct Line App Service 拡張機能に必要な AspNetCore ハンドラーおよびルールをサービス要求に追加します。

    1. ボットの web.config ファイルを編集する。

    2. webSocket タグの enabled 属性を true に変更します。

      <webSocket enabled="true" />
      
    3. <handlers> セクションで、次のハンドラーの登録を追加します。

      <add name="aspNetCore" path="*/.bot/*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      
    4. <rewrite> セクションで、ルールの一覧に次の規則を追加します。

      <!-- 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. 変更を保存します。

  3. Azure に自分の更新されたボットを Azure に再度デプロイする。

ボット Direct Line App Service 拡張機能を有効にする

  1. Azure portal で Azure Bot リソースに移動します。

    1. [設定]で、ボットがメッセージを受け入れるチャンネルを構成する[チャンネル]を選択します。
    2. まだ有効になっていない場合は、[使用可能なチャンネル] の一覧から Direct Line チャンネルを選択してチャンネルを有効にします。
    3. [Direct Line] を有効にした後、[チャンネル] ページからもう一度選択します。
    4. [App Service 拡張機能] タブを選択します。
    5. [App Service 拡張機能キー] で、対応するキーの横にある目のアイコンを選択します。
  2. ホーム ページに移動し、ページの上部にある [App Services] を選択します。 または、ポータル メニューを表示し、[App Services] メニュー項目を選択します。 Azure に 「App Services」ページが表示されます。

  3. 検索ボックスに、[Azure Bot] リソース名を入力します。 リソースが一覧表示されます。

    アイコンまたはメニュー項目にカーソルを合わせると、最後に表示されたリソースの一覧が表示されます。 Azure Bot リソースが一覧表示される可能性があります。

  4. リソース リンクを選択します。

    1. [設定] セクションで、[構成] メニュー項目を選択します。

    2. 右のパネルで、次の設定を追加します。

      名前
      DirectLineExtensionKey 前にコピーした App Service 拡張キーの値。
      DIRECTLINE_EXTENSION_VERSION latest
    3. パブリック ポータルを介して Azure にアクセスしない主権者または制限された Azure クラウドでボットがホストされている場合は、次の設定も追加する必要があります。

      名前
      DirectLineExtensionABSEndpoint ボットがホストされている Azure クラウドに固有のエンドポイント。 たとえば、USGov クラウドの場合、エンドポイントは https://directline.botframework.azure.us/v3/extension です。
    4. [構成] セクション内から、[全般] 設定セクションをクリックし、[Web ソケット をオンにします。

    5. [保存] を選択して設定を保存します。 これにより、Azure App Service が再起動されます。

Direct Line 拡張機能とボットが構成されていることを確認する

ブラウザーで https://<your_app_service>.azurewebsites.net/.bot に移動します。 すべて正しければ、このページは次の JSON コンテンツを返します。

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
  • v によって、Direct Line App Service 拡張機能のビルドバージョンが表示されます。
  • k は、拡張機能がその構成から拡張キーを読み取ることができたかどうかを示します。
  • initialized は、拡張機能が Azure AI Bot Service からボット メタデータをダウンロードできたかどうかを示します。
  • ib は、拡張機能がボットへの受信接続を確立できたかどうかを示します。
  • ob は、拡張機能がボットへの送信接続を確立できたかどうかを示します。

トラブルシューティング

  • .bot エンドポイント によって表示される ibob の値が false の場合、ボットと Direct Line App Service 拡張機能は相互に接続できません。

    1. 名前付きパイプを使用するためのコードチェックダブルがボットに追加されました。
    2. ボットが起動して実行できることを確認します。 便利なツールは、WebChat でのテスト、追加のチャネルの接続、リモート デバッグ、またはログ記録です。
    3. ボットがホストされている Azure App Service 全体を再起動して、すべてのプロセスのクリーンを確実に開始します。
  • .bot エンドポイント初期化された値が false の場合、Direct Line App Service 拡張機能は、上記のボットのアプリケーション 設定に追加された App Service 拡張機能キーを検証できません。

    1. 値が正しく入力されたことを確認します。
    2. ボット の [Direct Line の構成] ページに表示されている代替拡張キーに切り替えます。

次のステップ