Partilhar via


Configurar o bot .js nó para extensão

A partir de 1º de setembro de 2023, é altamente recomendável empregar o método de Etiqueta de Serviço do Azure para isolamento de rede. A utilização do DL-ASE deve ser limitada a cenários altamente específicos. Antes de implementar esta solução em um ambiente de produção, recomendamos consultar sua equipe de suporte para obter orientação.

APLICA-SE A: SDK v4

Este artigo descreve como atualizar um bot Node.js para trabalhar com pipes nomeados e como habilitar a extensão do Serviço de Aplicativo de Linha Direta no recurso do Serviço de Aplicativo do Azure onde o bot está hospedado.

Pré-requisitos

  • Uma conta do Azure. Se ainda não tiver uma, crie uma conta gratuita antes de começar.
  • Um bot Node.js implantado no Azure.
  • Bot Framework SDK para Node.js, 4.7 ou posterior.

Habilitar a extensão do 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 do canal de Linha Direta do seu bot.

Atualizar código do bot

Para permitir que seu aplicativo use a Extensão de Serviço de Aplicativo de Linha Direta Pipe Nomeado:

  1. Edite o index.js arquivo do bot.

    1. Localize a linha onde você cria o adaptador do bot.

    2. Depois que o adaptador for criado, adicione a instrução a seguir, que puxará o nome do Serviço de Aplicativo do ambiente e instruirá o adaptador a se conectar ao pipe nomeado apropriado.

      • Se o bot usar o CloudAdapter (recomendado):

        adapter.connectNamedPipe(
            process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline',
            async (context) => {
                await myBot.run(context);
            },
            process.env.MicrosoftAppId,
            AuthenticationConstants.ToChannelFromBotOAuthScope);
        
      • Se o bot usar o preterido BotFrameworkAdapter:

        adapter.useNamedPipe(async (context) => {
            await myBot.run(context);
            },
            process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline'
        );
        
    3. Guardar as suas alterações.

  2. Edite o arquivo do web.config bot para adicionar o manipulador e a regra necessários para a AspNetCore extensão do Serviço de Aplicativo de Linha Direta às solicitações de serviço.

    1. Edite o web.config arquivo do bot.

    2. Altere o webSocket atributo da enabled tag para true.

      <webSocket enabled="true" />
      
    3. <handlers> Na seção , adicione um registro para o manipulador a seguir.

      <add name="aspNetCore" path="*/.bot/*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      
    4. <rewrite> Na seção , adicione a seguinte regra à lista de regras.

      <!-- 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. Guardar as suas alterações.

  3. Reimplante seu bot atualizado no Azure.

Ativar a extensão do Serviço de Aplicativo de Linha Direta do bot

  1. No portal do Azure, vá para seu recurso de Bot do Azure.

    1. Em Configurações , selecione Canais para configurar os canais dos quais seu bot aceita mensagens.
    2. Se ainda não estiver ativado, selecione o canal Linha Direta na lista de Canais disponíveis para ativar o canal.
    3. Depois de ativar a Linha Direta, selecione-a novamente na página Canais .
    4. Selecione a guia Extensão do Serviço de Aplicativo .
    5. Em Chaves de Extensão do Serviço de Aplicativo, selecione o ícone de olho ao lado da chave correspondente.
  2. Vá para a página inicial e selecione Serviços de Aplicativo na parte superior da página. Como alternativa, exiba o menu do portal e selecione o item de menu Serviços de Aplicativo. O Azure exibirá a página Serviços de Aplicativo .

  3. Na caixa de pesquisa, insira o nome do recurso do Bot do Azure. Seu recurso será listado.

    Observe que, se você passar o mouse sobre o ícone ou o item de menu, obterá uma lista dos últimos recursos visualizados. Seu recurso de Bot do Azure provavelmente será listado.

  4. Selecione o link do recurso.

    1. Na seção Configurações, selecione o item de menu Configuração.

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

      Nome Valor
      DirectLineExtensionKey O valor da chave de extensão do Serviço de Aplicativo copiada anteriormente.
      DIRECTLINE_EXTENSION_VERSION mais recente
    3. Se o seu bot estiver hospedado em uma nuvem soberana ou restrita do Azure, onde você não acessa o Azure por meio do portal público, você também precisará adicionar a seguinte configuração:

      Nome Valor
      DirectLineExtensionABSEndpoint O ponto de extremidade específico para a nuvem do Azure em que seu bot está hospedado. Para a nuvem USGov, por exemplo, o ponto de extremidade é https://directline.botframework.azure.us/v3/extension.
    4. Na seção Configuração, selecione a seção Configurações gerais e ative os soquetes da Web.

    5. Selecione Guardar para guardar as definições. Isso reinicia o Serviço de Aplicativo do Azure.

Confirme se a extensão de Linha Direta e o bot estão configurados

No browser, aceda a https://<your_app_service>.azurewebsites.net/.bot. Se tudo estiver correto, a página retornará o seguinte conteúdo JSON:

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
  • v mostra a versão de compilação da extensão do Serviço de Aplicativo de Linha Direta.
  • k indica se a extensão foi capaz de ler uma chave de extensão a partir de sua configuração.
  • initialized indica se a extensão foi capaz de baixar metadados de bot do Serviço de Bot do Azure AI.
  • ib indica se a extensão foi capaz de estabelecer uma conexão de entrada com o bot.
  • ob indica se a extensão foi capaz de estabelecer uma conexão de saída do bot.

Resolução de problemas

  • Se os valores ib e ob exibidos pelo ponto de extremidade .bot forem falsos, o bot e a extensão do Serviço de Aplicativo de Linha Direta não poderão se conectar um ao outro.

    1. Verifique se o código para usar pipes nomeados foi adicionado ao bot.
    2. Confirme se o bot é capaz de iniciar e executar. Ferramentas úteis são Teste no WebChat, conexão de um canal adicional, depuração remota ou registro.
    3. Reinicie todo o Serviço de Aplicativo do Azure no qual o bot está hospedado para garantir uma inicialização limpa de todos os processos.
  • Se o valor inicializado do ponto de extremidade .bot for false, a extensão do Serviço de Aplicativo de Linha Direta não poderá validar a chave de extensão do Serviço de Aplicativo adicionada às Configurações do Aplicativo do bot acima.

    1. Confirme se o valor foi inserido corretamente.
    2. Alterne para a chave de extensão alternativa mostrada na página Configurar Linha Direta do bot.

Próximos passos