Provisionar e publicar um bot

APLICA-SE A: SDK v4

Este artigo descreve como usar a CLI do Azure para criar recursos para seu bot, preparar seu bot para implantação e implantar seu bot no Azure.

Este artigo pressupõe que você tenha um bot pronto para implantação. Para obter informações sobre como criar um bot de eco simples, confira Criar um bot com o SDK do Bot Framework. Você também pode usar um dos exemplos fornecidos no repositório de Amostras do Bot Framework.

Dica

Este artigo cria um recurso de Bot do Azure para seu bot. Os bots existentes que usam um recurso de Bot de Aplicativo Web ou um recurso de Registro de Canais de Bot continuarão funcionando, mas você não poderá criar novos bots que usem esses tipos de recursos.

Observação

Os SDKs JavaScript, C# e Python do Bot Framework continuarão a ser compatíveis. No entanto, o SDK Java está sendo desativado, com o suporte final de longo prazo terminando em novembro de 2023. Somente correções críticas de segurança e de bugs serão realizadas neste repositório.

Os bots existentes criados com o SDK para Java continuarão a funcionar.

Para a criação de novos bots, considere usar o Power Virtual Agents e ler sobre como escolher a solução de chatbot correta.

Para obter mais informações, confira O futuro da criação de bots.

Pré-requisitos

  • Para bots Java, instale o Maven.

  • Este processo utiliza dois modelos do Resource Manager do Azure (modelos do ARM) para criar recursos para o seu bot.

    Se você não tiver os modelos atuais, crie uma cópia em seu projeto de bot da pasta deploymentTemplates: C#, JavaScript, Python ou Java.

Para usar a CLI do Azure para provisionar e publicar bots, você precisa:

  • Uma conta do Azure com uma assinatura ativa. Criar uma conta gratuita.

  • Instalar a CLI do Azure.

    Para a linguagem de programação, use a versão da CLI do Azure apresentada a seguir. Algumas etapas não funcionarão com versões posteriores da CLI.

    Idioma Versão da CLI
    C# e JavaScript 2.39.0 ou posterior
    Python 2.36.0
    Java 2.29.2

Observação

Se o bot usar recursos adicionais, como um serviço de armazenamento ou serviços de linguagem, eles precisarão ser implantados separadamente.

Planejar sua implantação

Antes de começar, tome essas decisões.

Decisão Observações
Como você gerenciará as identidades de seus recursos de bot no Azure Você pode usar uma identidade gerenciada atribuída pelo usuário, um registro de aplicativo de locatário único ou um registro de aplicativo de locatário múltiplo. Para obter mais informações, confira Criar um o Alexa
Em qual grupo de recursos ou grupos de recursos você criará seus recursos de bot Até que você esteja familiarizado com esse processo, recomendamos usar um grupo de recursos. Para obter mais informações, confira Gerenciar recursos do Azure.
Se o seu bot será regional ou global Para obter informações sobre bots regionais, confira Regionalização no Serviço de Bot de IA do Azure.

A identidade do bot pode ser gerenciada no Azure de algumas maneiras diferentes.

  • Como uma identidade gerenciada atribuída pelo usuário, você não precisa gerenciar as credenciais do bot por conta própria.
  • Como um aplicativo de locatário único.
  • Como um aplicativo multilocatário.

O suporte para a identidade gerenciada atribuída pelo usuário e os tipos de aplicativo de locatário único foi adicionado ao SDK do Bot Framework para C# e JavaScript na versão 4.15.0. Esses tipos de aplicativos não são compatíveis com outras linguagens ou com o Bot Framework Composer, o Bot Framework Emulator ou o ngrok.

Tipo de aplicativo Suporte
Identidade gerenciada atribuída pelo usuário Serviço de Bot de IA do Azure e os SDKs C# e JavaScript
Locatário único Serviço de Bot de IA do Azure e os SDKs C# e JavaScript
Multilocatário Serviço de Bot de IA do Azure, todas as linguagens do SDK do Bot Framework, Composer, o Emulator e o ngrok

Importante

Os bots do Python não podem ser implantados em um grupo de recursos que contenha serviços do Windows ou de bots. No entanto, vários bots Python podem ser implantados no mesmo grupo de recursos. Crie outros serviços, como os serviços de IA do Azure, em um grupo de recursos diferente.

Recursos do Azure

Antes de implantar seu bot, você cria (ou provisiona) os recursos do Azure necessários. Para algumas etapas, você pode usar um recurso existente ou criar um novo.

Talvez seja útil decidir com antecedência os nomes dos novos recursos que você criará e os nomes dos recursos existentes que você usará. Seu bot usará esses tipos de recursos.

  • A assinatura do Azure que você usará para provisionar, publicar e gerenciar o bot
  • Um ou mais blocos de recursos
  • Uma identidade gerenciada atribuída pelo usuário ou um registro de aplicativo do Microsoft Entra ID
  • Um recurso Plano do Serviço de Aplicativo
  • Um recurso do serviço de aplicativo
  • Um recurso do Bot do Azure

Informações usadas entre recursos

À medida que você cria recursos no Azure, o Azure gera ou solicita IDs, senhas e outras informações necessárias nas etapas posteriores. A tabela a seguir lista as informações além dos nomes de recursos que você precisará registrar, em qual etapa ela é gerada e em quais etapas ela é usada.

Cuidado

Muitos desses IDs e senhas são informações confidenciais. Para obter informações sobre diretrizes de segurança comuns, confira Diretrizes de segurança do Bot Framework.

Informações Onde foi gerado ou encontrado Onde é usado
ID do locatário Iniciar sessão e selecionar a assinatura Usar a CLI do Azure para criar um recurso do Serviço de Aplicativo, Usar a CLI do Azure para criar ou atualizar um recurso do Bot do Azure, Atualizar definições de configuração do projeto
Tipo de aplicativo Criar um recurso de identidade Usar a CLI do Azure para criar um recurso do Serviço de Aplicativo, Usar a CLI do Azure para criar ou atualizar um recurso do Bot do Azure, Atualizar definições de configuração do projeto
ID do Cliente Criar um recurso de identidade Usar a CLI do Azure para criar um recurso do Serviço de Aplicativo, Usar a CLI do Azure para criar ou atualizar um recurso do Bot do Azure, Atualizar definições de configuração do projeto
URL do serviço de aplicativo base Usar a CLI do Azure para criar um recurso do Serviço de Aplicativo Usar a CLI do Azure para criar ou atualizar um recurso de Bot do Azure
Nome do Serviço de Aplicativo Usar a CLI do Azure para criar um recurso do Serviço de Aplicativo Publicar seu bot no Azure

Iniciar sessão e selecionar a assinatura

  1. Abra uma janela de comando.

  2. Inicie sessão no Azure.

    az login
    
    • Uma janela do navegador será aberta. Conclua o processo de conexão.
    • Em caso de êxito, o comando gera uma lista das assinaturas às quais sua conta tem acesso.
  3. Para definir a assinatura a ser usada, execute:

    az account set --subscription "<subscription>"
    

    Para <assinatura>, use a ID ou o nome da assinatura a ser usada.

  4. Se você criar uma identidade gerenciada atribuída pelo usuário ou um bot de locatário único, registre a tenantId para a assinatura. Você usará a ID de locatário nas etapas a seguir.

Dica

Se você precisar trabalhar em uma nuvem não pública, confira Gerenciamento de nuvem do Azure com a CLI do Azure.

Criar grupos de recursos

Se você ainda não tiver um grupo de recursos apropriado, use o comando az group create para criar os grupos de recursos necessários.

az group create --name "<group>" --location "<region>"
Opção Descrição
name Nome do grupo de recursos a ser criado.
localização A região usada para criar o grupo de recursos.

Para obter mais informações, confira Como gerenciar grupos de recursos do Azure com a CLI do Azure.

Criar um recurso de identidade

  1. Para criar uma identidade gerenciada atribuída pelo usuário, use o comando az identity create. Em caso de êxito, o comando gera a saída JSON.

    az identity create --resource-group "<group>" --name "<identity>"
    
    Opção Descrição
    resource-group O nome do grupo de recursos no qual criar a identidade.
    name O nome do recurso de identidade a ser criado.

    Para obter mais informações, confira a referência az identity.

  2. Registre os valores necessários para as etapas posteriores.

    1. O nome do grupo de recursos para o recurso de identidade
    2. O nome do recurso de identidade
    3. O clientId da saída do comando

Configurar recursos com modelos do ARM

Criar o Serviço de Aplicativo e os recursos de bot do Azure para seu bot. Ambas as etapas usam um modelo do ARM e o comando da CLI do Azure az deployment group create para criar um ou mais recursos.

  1. Criar um recurso do Serviço de Aplicativo para seu bot. O Serviço de Aplicativo pode estar dentro de um Plano do Serviço de Aplicativo novo ou existente.

    Para obter etapas detalhadas, confira Usar a CLI do Azure para criar um Serviço de Aplicativo.

  2. Criar seu recurso de bot Kudu.

    Para obter etapas detalhadas, confira Usar a CLI do Azure para criar ou atualizar um Bot do Azure.

Importante

Essas etapas podem ser feitas em qualquer ordem. No entanto, se você criar seu Bot do Azure primeiro, precisará atualizar o ponto de extremidade de mensagens depois de criar o recurso do Serviço de Aplicativo.

Atualizar definições de configuração do projeto

Informações de identidade do bot

Siga estas etapas para adicionar informações de identidade ao arquivo de configuração do bot. O arquivo difere dependendo da linguagem de programação usada para criar o bot.

Importante

As versões Java e Python do SDK do Bot Framework oferecem suporte apenas a bots multilocatário. As versões para C# e para JavaScript oferecem suporte a todos os três tipos de aplicativos para o gerenciamento da identidade do bot.

Idioma Nome do arquivo Observações
C# appsettings.json Oferece suporte a todos os três tipos de aplicativos para gerenciar a identidade do bot.
JavaScript .env Oferece suporte a todos os três tipos de aplicativos para gerenciar a identidade do bot.
Java application.properties Suporta apenas bots multilocatário.
Python config.py Suporta apenas bots multilocatário. Forneça as propriedades de identidade como argumentos para as chamadas de método os.environ.get.

As informações de identidade que você precisa adicionar dependem do tipo de aplicativo do bot. Forneça os valores a seguir no arquivo de configuração.

Disponível somente para bots em C# e JavaScript.

Propriedade Valor
MicrosoftAppType UserAssignedMSI
MicrosoftAppId A ID do cliente da identidade gerenciada atribuída pelo usuário.
MicrosoftAppPassword Não aplicável. Deixe em branco para um bot de identidade gerenciada atribuída pelo usuário.
MicrosoftAppTenantId A ID do locatário de uma identidade gerenciada atribuída pelo usuário.

Preparar os arquivos de projeto

É necessário preparar os arquivos de projeto para implantar o bot.

  1. Alterne para a pasta raiz do seu projeto. Para C#, a raiz é a pasta que contém o arquivo .csproj.

  2. Faça uma recompilação limpa no modo da versão.

  3. Se você não tiver feito isso antes, execute az bot prepare-deploy para adicionar os arquivos necessários à raiz do diretório do código-fonte local. Esse comando gera um arquivo .deployment na pasta do projeto do bot.

    az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "<my-cs-proj>"
    
    Opção Descrição
    lang A linguagem ou o runtime do bot. Use Csharp.
    code-dir O diretório no qual colocar os arquivos de implantação gerados. Use a pasta raiz do seu projeto. O padrão é o diretório atual.
    proj-file-path O caminho para o arquivo .csproj do bot, relativo à opção code-dir.
  4. Dentro da pasta raiz do seu projeto, crie um arquivo zip que contenha todos os arquivos e subpastas.

Publicar seu bot no Azure

Neste ponto, você está pronto para implantar o código do bot no recurso do Serviço de Aplicativo.

Observação

A conclusão dessa etapa pode levar alguns minutos. Além disso, pode levar mais alguns minutos entre a conclusão da implantação e a disponibilidade do bot para teste.

Execute o seguinte comando na linha de comando para realizar a implantação usando o serviço de implantação de zip por push do Kudu para um serviço de aplicativo (web).

az webapp deployment source config-zip --resource-group "<resource-group-name>" --name "<name-of-app-service>" --src "<project-zip-path>"
Opção Descrição
resource-group O nome do grupo de recursos do Azure que contém o bot.
name Nome do Serviço de Aplicativo que você usou anteriormente.
src O caminho relativo ou absoluto para o arquivo de projeto compactado que você criou.

Dica

Por padrão, esse comando é implantado no slot de produção. Use o parâmetro opcional --slot para especificar um slot diferente. Para obter mais informações, confira a referência do comando az webapp deployment source config-zip.

Testar no Webchat

  1. Em seu navegador, navegue até o portal do Azure.
  2. Acesse o recurso do seu bot.
  3. Abra o painel Testar no Webchat.
  4. Interaja com o bot implantado.

Para obter mais informações sobre o registro de canais do bot, confira Registrar um bot com o Serviço de Bot.

Limpar os recursos

Se não deseja publicar este aplicativo, exclua os recursos associados seguindo a seguintes etapas:

  1. No portal do Azure, abra o grupo de recursos para seu bot.
    1. Selecione Excluir grupo de recursos para excluir o grupo e todos os recursos que ele contém.
    2. Insira o nome do grupo de recursos painel de confirmação e selecione Excluir.
  2. Se você criou um aplicativo de locatário único ou multilocatário:
    1. Navegue até a folha Microsoft Entra ID.
    2. Localize o registro de aplicativo que você usou para seu bot e exclua-o.

Recursos adicionais

Confira estes artigos para obter mais informações sobre aplicativos e recursos do Azure usados para hospedar um bot.

Assunto Artigo
CLI do Azure O que é a CLI do Azure?
Gerenciamento de assinaturas do Azure Como gerenciar as assinaturas do Azure com a CLI do Azure
Regiões do Azure Regiões e zonas de disponibilidade
Grupos de recursos e gerenciamento de recursos Gerenciar recursos do Azure
Identidades gerenciadas O que são identidades gerenciadas para recursos do Azure?
Aplicativos multilocatário e de único locatário Locação no Microsoft Entra ID
Aplicativos Web Serviço de Aplicativo
Recursos de computação para aplicativos Web Planos do Serviço de Aplicativo
Modelos do ARM (modelos do Azure Resource Manager) O que são modelos do ARM? e Como usar os modelos implantação do Azure Resource Manager (ARM) com a CLI do Azure
Cobrança do Azure Cobrança e gerenciamento de custos

Arquivos Kudu

O comando de implantação do aplicativo Web usa o Kudu para implantar bots C#, JavaScript e Python. Ao usar a API de implantação de zip não configurada para implantar o código de seu bot, o comportamento do Aplicativo Web/Kudu será o seguinte:

O Kudu assume por padrão que as implantações a partir de arquivos zip estão prontas para serem executadas e não exigem etapas de compilação adicionais durante a implantação, como npm install ou dotnet restore/dotnet publish.

É importante incluir o código compilado com todas as dependências necessárias no arquivo zip a ser implantado, caso contrário, seu bot não funcionará como esperado. Para obter mais informações, confira a documentação do Azure sobre como Implantar arquivos no Serviço de Aplicativo.

Próximas etapas