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:
Edite o
index.js
arquivo do bot.Localize a linha onde você cria o adaptador do bot.
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' );
Guardar as suas alterações.
Edite o arquivo do
web.config
bot para adicionar o manipulador e a regra necessários para aAspNetCore
extensão do Serviço de Aplicativo de Linha Direta às solicitações de serviço.Edite o
web.config
arquivo do bot.Altere o
webSocket
atributo daenabled
tag paratrue
.<webSocket enabled="true" />
<handlers>
Na seção , adicione um registro para o manipulador a seguir.<add name="aspNetCore" path="*/.bot/*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
<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>
Guardar as suas alterações.
Reimplante seu bot atualizado no Azure.
Ativar a extensão do Serviço de Aplicativo de Linha Direta do bot
No portal do Azure, vá para seu recurso de Bot do Azure.
- Em Configurações , selecione Canais para configurar os canais dos quais seu bot aceita mensagens.
- Se ainda não estiver ativado, selecione o canal Linha Direta na lista de Canais disponíveis para ativar o canal.
- Depois de ativar a Linha Direta, selecione-a novamente na página Canais .
- Selecione a guia Extensão do Serviço de Aplicativo .
- Em Chaves de Extensão do Serviço de Aplicativo, selecione o ícone de olho ao lado da chave correspondente.
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 .
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.
Selecione o link do recurso.
Na seção Configurações, selecione o item de menu Configuração.
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 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
.Na seção Configuração, selecione a seção Configurações gerais e ative os soquetes da Web.
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.
- Verifique se o código para usar pipes nomeados foi adicionado ao bot.
- 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.
- 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.
- Confirme se o valor foi inserido corretamente.
- Alterne para a chave de extensão alternativa mostrada na página Configurar Linha Direta do bot.