Configurar o bot do Node.js para a extensão

aplica-se a: SDK v4

Este artigo descreve como atualizar um bot para trabalhar com pipes nomeados e como habilitar a extensão de serviço de aplicativo de linha direta no recurso de serviço de Azure app em que o bot está hospedado.

Pré-requisitos

Para executar as etapas descritas a seguir, você precisa ter um bot implantado no Azure.

Habilitar extensão de serviço de aplicativo de linha direta

Esta seção descreve como habilitar a extensão do serviço de aplicativo de linha direta usando a chave de extensão do serviço de aplicativo da configuração de canal de linha direta do bot.

Atualizar o bot do Node.js para usar a Extensão do Serviço de Aplicativo do Direct Line

  1. O BotBuilder v 4.7.0 ou posterior é necessário para usar um bot de Node.js com extensão de serviço de aplicativo de linha direta.

  2. Permita que seu aplicativo use o pipe nomeado da Extensão do Serviço de Aplicativo do Direct Line:

    Atualize o index.js do bot (abaixo da atribuição do adaptador e do bot) para incluir o código a seguir que obtém o nome do serviço de aplicativo do ambiente e instrui o adaptador a se conectar ao pipe nomeado apropriado:

    
    adapter.useNamedPipe(async (context) => {
        await myBot.run(context);
        },
        process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline'
    );
    
  3. Salve o arquivo index.js.

  4. Atualize o Web.Config arquivo para adicionar o AspNetCore manipulador e a regra necessários para a extensão de serviço de aplicativo de linha direta para solicitações de serviço:

    Localize o Web.Config arquivo no wwwroot diretório do bot e modifique o conteúdo para incluir as seguintes entradas nas Handlers Rules seções e:

    <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. Publique o bot em seu recurso de bot do aplicativo Web do Azure.

Habilitar extensão do serviço de aplicativo de linha direta de bot

  1. Na portal do Azure, localize o recurso de bot do aplicativo Web .

  2. No menu do painel esquerdo, em Gerenciamento de bot , clique em canais para configurar os canais de serviço de bot do Azure do qual o bot aceita mensagens.

  3. Se ainda não estiver habilitado, clique no canal de linha direta e siga as instruções para habilitar o canal.

  4. Na tabela conectar-se a canais , clique no link Editar na linha da linha direta.

  5. Role para baixo até a seção Chaves de Extensão do Serviço de Aplicativo.

  6. Clique no link Mostrar para revelar uma das chaves. Você usará esse valor nas etapas abaixo.

    Chaves de extensão do serviço de aplicativo

  7. No menu do painel esquerdo, na seção configurações do aplicativo , clique no item de configuração .

  8. No painel direito, adicione as seguintes novas configurações:

    Nome Valor
    DirectLineExtensionKey <App_Service_Extension_Key>
    DIRECTLINE_EXTENSION_VERSION mais recente

    Em que App_Service_Extension_Key é o valor salvo anteriormente.

  9. Se o bot estiver hospedado em uma nuvem soberana ou restrita do Azure (ou seja, se você não acessar o Azure por meio do portal público),você também precisará adicionar a seguinte nova configuração:

    Nome Valor
    DirectLineExtensionABSEndpoint <URL_of_Direct_Line_App_Gateway>

    Onde URL_of_Direct_Line_App_Gateway é específico para a nuvem do Azure em que seu bot está hospedado. Para USGov, esse valor é https://directline.botframework.azure.us/v3/extension

  10. Ainda na seção Configuração, clique na seção Configurações gerais e a ligue os soquetes da Web

  11. Clique em Salvar para salvar as configurações. Isso reinicia o Serviço de Aplicativo do Azure.

Confirme Direct Line extensão do aplicativo e se o bot está configurado

No navegador, navegue até https://<your_app_service>.azurewebsites.net/.bot. Se tudo estiver correto, a página retornará este conteúdo JSON: {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}. Essas são as informações que você obtém quando tudo funciona corretamente, onde

  • v exibe a versão de build da ASE (Extensão de Serviço de Aplicativo) do Direct Line.
  • k determina se a ASE do Direct Line pode ler uma chave de Extensão de Serviço de Aplicativo com base na respectiva configuração.
  • initialized determina se a ASE do Direct Line pode usar a chave de Extensão do Serviço de Aplicativo para baixar os metadados do bot do Serviço de Bot do Azure
  • ib determina se a ASE do Direct Line pode estabelecer uma conexão de entrada com o bot.
  • ob determina se a ASE do Direct Line pode estabelecer uma conexão de saída com o bot.

Solução de problemas

  • Se os valores ib e ob exibidos pelo ponto de extremidade *.bot são falsos, isso significa que o bot e Direct Line extensão do serviço de aplicativo não podem se conectar entre si.

    1. Verifique se o código para usar pipes nomeados foi adicionado ao bot.
    2. Confirme se o bot é capaz de iniciar e executar. As ferramentas úteis são Testar no WebChat, conectando um canal adicional, depuração remota ou registro em log.
    3. Reinicie todo o Serviço de Aplicativo do Azure o bot está hospedado, para garantir uma reinicialização limpa de todos os processos.
  • Se o valor inicializado do ponto de extremidade .bot for false, isso significará que Direct Line extensão do serviço de aplicativo não poderá validar a Chave de Extensão do Serviço de Aplicativo adicionada às Configurações de Aplicativo do bot acima.

    1. Confirme se o valor foi inserido corretamente.
    2. Alternar para a Chave de Extensão do Serviço de Aplicativo alternativa mostrada na página de configuração Direct Line canal do bot.

Próximas etapas