Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode implantar um bot ou aplicativo de guia do Teams em um Azure Aplicativos de Contêiner, Serviço de Kubernetes do Azure (AKS) ou um Cluster do Kubernetes local.
Pré-requisitos
Baixe o bot do Teams de exemplo ou o aplicativo da guia Teams de exemplo, que oferece uma experiência pronta para uso para o desenvolvimento de Aplicativos de Contêiner do Azure. Você pode fazer algumas alterações de configuração e implantá-la no AKS ou em um cluster do Kubernetes local.
Antes de começar, verifique se você tem as seguintes ferramentas:
Uma conta do Azure.
CLI (Interface de Linha de Comando) do Azure para implantação do AKS ou Aplicativos de Contêiner do Azure.
Observação
- Os comandos no artigo são baseados no Git Bash. Se você estiver usando qualquer outra interface, atualize os comandos conforme necessário.
- Ao implantar em um serviço de contêiner, certifique-se de configurar as variáveis de ambiente necessárias, conforme descrito em configurar autenticação em um agente JavaScript.
Implantar em Aplicativos de Contêiner do Azure
Os Aplicativos de Contêiner do Azure são um serviço totalmente gerenciado que permite executar aplicativos em contêineres na nuvem. É a escolha ideal se você não precisa de acesso direto a todas as APIs nativas do Kubernetes e ao gerenciamento de cluster e prefere uma experiência totalmente gerenciada com base nas práticas recomendadas.
Com a ajuda de aplicativos de exemplo, você pode executar os comandos de provisionamento e implantação no Microsoft 365 Agents Toolkit (anteriormente conhecido como Teams Toolkit). O Agents Toolkit cria um Registro de Contêiner do Azure e Aplicativos de Contêiner do Azure para você e constrói seu aplicativo em uma imagem de contêiner e a implanta nos Aplicativos de Contêiner do Azure.
O provision comando cria e configura os seguintes recursos:
- Um aplicativo do Teams com funcionalidade de guia ou bot.
- Um Registro de Contêiner do Azure para hospedar a imagem do contêiner.
- Um ambiente de Aplicativo de Contêiner do Azure e um Aplicativos de Contêiner do Azure para hospedar seu aplicativo.
- Um aplicativo Microsoft Entra para autenticação.
No bot do Teams de exemplo, o provision comando também cria um Azure Serviço de Bot para canalizar o cliente do Teams e Azure Aplicativos de Contêiner.
O deploy comando executa as seguintes ações:
- Cria o aplicativo em uma imagem de contêiner.
- Envia a imagem do contêiner para o Registro de Contêiner do Azure.
- Implanta a imagem nos Aplicativos de Contêiner do Azure.
Implantar bot do Teams no Serviço de Kubernetes do Azure
O AKS é um serviço gerenciado de orquestração de contêiner fornecido pelo Azure. Com o AKS, você pode gerenciar totalmente a experiência do Kubernetes no Azure.
Arquitetura
O servidor de back-end do Teams interage com seu bot por meio do Azure Serviço de Bot. Esse serviço exige que o bot seja acessível por meio de um ponto de extremidade HTTPS público. Para configurar, implante um controlador de entrada no cluster Kubernetes e proteja-o com um certificado TLS.
Você pode usar Microsoft Entra ID para autenticar seu bot com Azure Serviço de Bot. Crie um segredo do Kubernetes que inclua a ID e a senha do aplicativo e integre o segredo à configuração de tempo de execução do contêiner.
Configurar a entrada com HTTPS no AKS
Verifique se o AKS está conectado ao Registro de Contêiner do Azure, que hospeda as imagens de contêiner. Para obter mais informações, consulte usar a CLI do Azure.
Execute o seguinte comando para instalar o controlador de entrada e o gerenciador de certificados:
NAMESPACE=teams-bot helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update helm install ingress-nginx ingress-nginx/ingress-nginx --create-namespace --namespace $NAMESPACE \ --set controller.nodeSelector."kubernetes\.io/os"=linux \ --set defaultBackend.nodeSelector."kubernetes\.io/os"=linux \ --set controller.healthStatus=true \ --set controller.service.externalTrafficPolicy=Local \ --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz helm repo add jetstack https://charts.jetstack.io helm repo update helm install cert-manager jetstack/cert-manager --namespace $NAMESPACE --set installCRDs=true --set nodeSelector."kubernetes\.io/os"=linuxObservação
Você também pode seguir as instruções disponíveis em criar um controlador de entrada não gerenciado e usar o TLS com o Let's encrypt certificates para configurar certificados de entrada e TLS em seu cluster do Kubernetes.
Execute o seguinte comando para atualizar o DNS para o IP público de entrada e obter o ponto de extremidade de entrada:
> kubectl get services --namespace $NAMESPACE -w ingress-nginx-controller NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) ingress-nginx-controller LoadBalancer $CLUSTER_IP $EXTERNAL_IP 80:32514/TCP,443:32226/TCP > PUBLICIPID=$(az network public-ip list --query "[?ipAddress!=null]|[?contains(ipAddress, '$EXTERNAL_IP')].[id]" --output tsv) > az network public-ip update --ids $PUBLICIPID --dns-name $DNSLABEL > az network public-ip show --ids $PUBLICIPID --query "[dnsSettings.fqdn]" --output tsv $DNSLABEL.$REGION.cloudapp.azure.com
Provisionar recursos com o Kit de Ferramentas de Agentes
Você pode usar o comando no Kit de Ferramentas de provision Agentes para criar um aplicativo do Teams com funcionalidade de bot, incorporar o Azure Serviço de Bot e adicionar o Microsoft Entra ID para autenticação.
Para provisionar recursos com o Kit de Ferramentas de Agentes, siga estas etapas:
Abra o aplicativo de exemplo que você baixou anteriormente.
Vá até o
env/.env.${envName}arquivo e atualize o valor com seuBOT_DOMAINFQDN.Acesse o
m365agents.ymlarquivo e atualize a seguintearm/deployação para garantir que o Agents Toolkit provisione uma Azure Serviço de Bot durante a execução doprovisioncomando:- uses: arm/deploy with: subscriptionId: ${{AZURE_SUBSCRIPTION_ID}} resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}} templates: - path: ./infra/botRegistration/azurebot.bicep parameters: ./infra/botRegistration/azurebot.parameters.json deploymentName: Create-resources-for-bot bicepCliVersion: v0.9.1Execute o comando no Kit de Ferramentas de
provisionAgentes.Após o provisionamento, localize o arquivo de entrada e o
BOT_IDarquivo criptografadoenv/.env.${envName}.userSECRET_BOT_PASSWORD.env/.env.${envName}Para obter o valor real deBOT_PASSWORD. Selecione a anotação Descriptografar segredo.Para criar um segredo do Kubernetes que contenha
BOT_IDeBOT_PASSWORD, salve o./deploy/.env.dev-secretspar de valores-chave no arquivo e execute o seguinte comando para provisionar o segredo:kubectl create secret generic dev-secrets --from-env-file ./deploy/.env.dev-secrets -n $NAMESPACE
Aplicar a implantação
O exemplo inclui um arquivo de implantação, deploy/sso-bot.yaml, para sua referência.
Atualize os seguintes espaços reservados:
<image>: atualize sua imagem. Por exemplo,myacr.azurecr.io/sso-bot:latest.<hostname>: Atualize seu FQDN de entrada.
Para aplicar
deploy/tab.yaml, execute o seguinte comando:kubectl apply -f deploy/sso-bot.yaml -n $NAMESPACEAcesse o Visual Studio Code.
No painel Executar e Depurar , selecione a configuração Iniciar remoto .
Para visualizar o aplicativo de bot do Teams implantado no AKS, selecione Iniciar Depuração (F5).
Implantar o bot do Teams em um cluster Kubernetes local
Você pode implantar um bot do Teams em seu cluster do Kubernetes pessoal ou em um serviço do Kubernetes de diferentes serviços de nuvem seguindo etapas semelhantes que são usadas para implantar o bot do Teams no AKS.
Arquitetura
O servidor de back-end do Teams interage com seu bot por meio do Azure Serviço de Bot. Esse serviço exige que o bot seja acessível por meio de um ponto de extremidade HTTPS público. Para configurar, implante um controlador de entrada no cluster Kubernetes e proteja-o com um certificado TLS.
Você pode usar Microsoft Entra ID para autenticar seu bot com Azure Serviço de Bot. Crie um segredo do Kubernetes que inclua a ID e a senha do aplicativo e integre o segredo à configuração de tempo de execução do contêiner.
Provisionar recursos com o Kit de Ferramentas de Agentes
Você pode usar o comando no Kit de Ferramentas de provision Agentes para criar um aplicativo do Teams com funcionalidade de bot, incorporar o Azure Serviço de Bot e adicionar o Microsoft Entra ID para autenticação.
Para provisionar recursos com o Kit de Ferramentas de Agentes, siga estas etapas:
Abra o aplicativo de exemplo que você baixou anteriormente.
Vá até o
env/.env.${envName}arquivo e atualize o valor com seuBOT_DOMAINFQDN.Acesse o
m365agents.ymlarquivo e atualize a seguintearm/deployação para garantir que o Agents Toolkit provisione uma Azure Serviço de Bot durante a execução doprovisioncomando:- uses: arm/deploy with: subscriptionId: ${{AZURE_SUBSCRIPTION_ID}} resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}} templates: - path: ./infra/botRegistration/azurebot.bicep parameters: ./infra/botRegistration/azurebot.parameters.json deploymentName: Create-resources-for-bot bicepCliVersion: v0.9.1m365agents.ymlNo arquivo, atualize abotFramework/createação durante o estágio de provisionamento. Essa ação permite que o Agents Toolkit crie um registro de bot com o ponto de extremidade de mensagens apropriado.Observação
Recomendamos que você use Azure Serviço de Bot para canalização. Se você não tiver uma conta Azure e não puder criar Azure Serviço de Bot, poderá criar um registro de bot.
- uses: botFramework/create with: botId: ${{BOT_ID}} name: <Bot display name> messagingEndpoint: https://${{BOT_DOMAIN}}/api/messages description: "" channels: - name: msteamsVocê pode remover a
arm/deployação nom365agents.ymlarquivo, pois não precisamos de nenhum recurso do Azure.Execute o comando no Kit de Ferramentas de
provisionAgentes.Após o provisionamento, localize o no
env/.env.${envName}arquivo e oBOT_IDcriptografadoSECRET_BOT_PASSWORDnoenv/.env.${envName}.userarquivo. Para obter o valor real deBOT_PASSWORD. Selecione a anotação Descriptografar segredo.Para criar um segredo do Kubernetes que contenha
BOT_IDeBOT_PASSWORD, salve o./deploy/.env.dev-secretspar de valores-chave no arquivo e execute o seguinte comando para provisionar o segredo:kubectl create secret generic dev-secrets --from-env-file ./deploy/.env.dev-secrets -n $NAMESPACE
Aplicar a implantação
O exemplo inclui um arquivo de implantação, deploy/sso-bot.yaml, para sua orientação.
Atualize os seguintes espaços reservados:
<image>: atualize sua imagem. Por exemplo,myacr.azurecr.io/sso-bot:latest.<hostname>: Atualize seu FQDN de entrada.
Para aplicar
deploy/tab.yaml, execute o seguinte comando:kubectl apply -f deploy/sso-bot.yaml -n $NAMESPACEAcesse o Visual Studio Code.
No painel Executar e Depurar , selecione a configuração Iniciar remoto .
Para visualizar o aplicativo de bot do Teams implantado no AKS, selecione Iniciar Depuração (F5).
Implantar aplicativo de guia do Teams no Kubernetes
O AKS atua como um serviço gerenciado de orquestração de contêiner oferecido pelo Azure. Com o AKS, você pode gerenciar totalmente a experiência do Kubernetes no Azure.
Implantar um aplicativo de guia do Teams no AKS é semelhante à implantação de um aplicativo Web no AKS. No entanto, como um aplicativo de guia do Teams requer uma conexão HTTPS, você precisa possuir um domínio e configurar a entrada TLS em seu AKS.
Você também pode implantar um aplicativo de guia do Teams em seu cluster Kubernetes pessoal ou em um serviço Kubernetes em diferentes plataformas de nuvem. Isso envolve etapas semelhantes às usadas durante a implantação no Serviço de Kubernetes do Azure.
Configurar a entrada com HTTPS no AKS
Verifique se o AKS já está conectado ao Registro de Contêiner do Azure, que hospeda as imagens de contêiner. Para obter mais informações, consulte CLI do Azure.
Execute o seguinte comando para instalar o controlador de entrada e o gerenciador de certificados:
NAMESPACE=teams-tab helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update helm install ingress-nginx ingress-nginx/ingress-nginx --create-namespace --namespace $NAMESPACE \ --set controller.nodeSelector."kubernetes\.io/os"=linux \ --set defaultBackend.nodeSelector."kubernetes\.io/os"=linux \ --set controller.healthStatus=true \ --set controller.service.externalTrafficPolicy=Local \ --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz helm repo add jetstack https://charts.jetstack.io helm repo update helm install cert-manager jetstack/cert-manager --namespace $NAMESPACE --set installCRDs=true --set nodeSelector."kubernetes\.io/os"=linuxObservação
Você também pode seguir as instruções disponíveis em criar um controlador de entrada não gerenciado e usar o TLS com o Let's encrypt certificates para configurar certificados de entrada e TLS em seu cluster do Kubernetes.
Execute o seguinte comando para atualizar o DNS para o IP público de entrada e obter o ponto de extremidade de entrada:
> kubectl get services --namespace $NAMESPACE -w ingress-nginx-controller NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) ingress-nginx-controller LoadBalancer $CLUSTER_IP $EXTERNAL_IP 80:32514/TCP,443:32226/TCP > PUBLICIPID=$(az network public-ip list --query "[?ipAddress!=null]|[?contains(ipAddress, '$EXTERNAL_IP')].[id]" --output tsv) > az network public-ip update --ids $PUBLICIPID --dns-name $DNSLABEL > az network public-ip show --ids $PUBLICIPID --query "[dnsSettings.fqdn]" --output tsv $DNSLABEL.$REGION.cloudapp.azure.com
Provisionar recursos com o Kit de Ferramentas de Agentes
Você pode usar o provision comando no Agents Toolkit para criar um aplicativo do Teams com funcionalidade de guia, incorporar o Azure Serviço de Bot e adicionar o Microsoft Entra ID para autenticação.
Para provisionar recursos com o Kit de Ferramentas de Agentes, siga estas etapas:
Abra o aplicativo de exemplo que você baixou anteriormente.
Vá até o
env/.env.${envName}arquivo e atualize o valor com seuTAB_DOMAINFQDN.Vá para o
m365agents.ymlarquivo e remova aarm/deployação, já que nenhum recurso adicional do Azure é necessário.Execute o comando no Kit de Ferramentas de
provisionAgentes.Use o Agents Toolkit para criar um Microsoft Entra ID, que você pode querer definir como variáveis de ambiente de seus aplicativos.
Após o provisionamento, localize o no
env/.env.${envName}arquivo e oAAD_APP_CLIENT_IDcriptografadoSECRET_AAD_APP_CLIENT_SECRETnoenv/.env.${envName}.userarquivo.Para obter o valor real de
SECRET_AAD_APP_CLIENT_SECRET. Selecione a anotação Descriptografar segredo.
Aplicar a implantação
O exemplo inclui um arquivo de implantação, deploy/tab.yaml, para sua referência.
Atualize os seguintes espaços reservados:
<tab-image>: atualize sua imagem. Por exemplo,myacr.azurecr.io/tab:latest.<api-image>: atualize sua imagem de API. Se você não tiver uma API, remova ohello-world-apiserviço e implante-o a partir do arquivo yaml.<hostname>: Atualize seu FQDN de entrada.
Para aplicar
deploy/tab.yaml, execute o seguinte comando:kubectl apply -f deploy/tab.yaml -n $NAMESPACEAcesse o Visual Studio Code.
No painel Executar e Depurar , selecione a configuração Iniciar remoto .
Para visualizar o aplicativo de bot do Teams implantado no AKS, selecione Iniciar Depuração (F5).