Ir para o conteúdo

Primeiros Passos

Como Funciona

O Session Manager (Gerente de Sessão) monitora a fila de tarefas do Orquestrador BotCity em tempo real. Ele é responsável por ativar recursos sempre que houver tarefas em aguardo e desativá-los quando finaliza a execução e não há mais tarefas na fila.

Ele é otimizado para fornecer alocação de recursos em tempo hábil, garantindo a disponibilidade desses recursos quando necessário. Isso reduz tanto o tempo ocioso das tarefas em aguardo no Orquestrador BotCity, quanto o tempo de Runners ativos e ocioso sem tarefas para executar.

Fluxo de Processos:

  1. Monitoramento da Fila: O Session Manager monitora continuamente a fila de tarefas do Orquestrador BotCity.
  2. Ativação de Recursos: Quando há demanda de tarefas, os recursos são ativados para lidar com a carga.
  3. Desativação de Recursos: À medida que a demanda deixa de existir, os recursos são liberados e desativados, reduzindo os custos.

Conceitos-chave

Antes de mergulhar na configuração, é importante entender alguns conceitos-chave que serão referenciados abaixo:

  • host: Um host é um computador ou máquina virtual (localmente ou na nuvem) que terá sua sessão controlada, essa máquina deverá ter os recursos do SDK da BotCity instalados.
  • protocol: O protocolo a ser utilizado para a conexão e comunicação do Session Manager com o host. Verifique a lista de protocolos suportados.

Protocolos Suportados

Atualmente, dois protocolos são suportados:

  • RDP
  • AWS EC2 + RDP

RDP - Área de Trabalho Remota

Para configurar um host com suporte para Área de Trabalho Remota, você precisará das seguintes informações:

  • Nome do Host ou Endereço IP: para se comunicar com o host.
  • Nome de usuário: para iniciar a sessão.
  • Senha: para iniciar a sessão do usuário.

AWS EC2 + RDP

Este protocolo permite não apenas estabelecer a conexão RDP com o host, mas também manipular o estado da instância EC2 da AWS, iniciando e parando-a com base na demanda da fila de tarefas do Orquestrador BotCity.

Para configurar um host com suporte para AWS EC2, você precisará das seguintes informações:

  • ID da Instância
  • Região AWS: (Opcional) a região da AWS onde esta instância está localizada.
  • ID da Chave de Acesso AWS: (Opcional) a chave de acesso da API AWS.
  • ID da Chave Secreta de Acesso AWS: (Opcional) a chave secreta de acesso da AWS.
  • Nome do Host ou Endereço IP: para se comunicar com o host.
  • Nome de usuário: para iniciar a sessão.
  • Senha: para iniciar a sessão do usuário.

Credenciais da AWS

O uso de um arquivo de credenciais da AWS também é suportado. Certifique-se de responder Sim durante o comando host add quando solicitado.

Se você usar o arquivo de credenciais, a Região, Chave de Acesso e Chave Secreta não serão solicitados.

Azure VM + RDP

Este protocolo permite configurar uma VM do Azure para funcionar manipulando o estado da VM e estabelendo a conexão RDP, iniciando e parando-a com base na demanda da fila de tarefas do BotCity Orchestrator.

Disponibiliza duas opções para autenticação ao acessar recursos do Azure:

  • Uso de Client Secrets — fornecendo Tenant ID, Client ID e Client Secret do Azure AD para acesso explícito
  • Uso de Managed Identity — utilizando a identidade gerenciada da VM para acesso automático, sem precisar fornecer segredos

Para configurar o host para usar o Azure VM, você deverá informar os seguintes dados:

  • Nome da VM onde a configuração será aplicada
  • Grupo de Recursos da VM no Azure
  • ID da Assinatura (Subscription ID) relacionada à VM
  • Tenant ID (Opcional) identifica o diretório do Azure Active Directory (Azure AD) ao qual a aplicação pertence.
  • Client ID (Opcional) identifica de forma única a aplicação registrada no Azure AD.
  • Client Secret (Opcional) é a senha ou chave secreta associada à aplicação registrada, usada para autenticação segura.

Tip

Na autenticação da Azure VM, existem três formas principais de fornecer credenciais:

  • Client Secrets:
    Use Tenant ID, Client ID e Client Secret quando quiser autenticar explicitamente via uma aplicação registrada no Azure AD.
    Isso é útil em ambientes que não possuem Managed Identity habilitada ou para cenários que exigem credenciais específicas.

  • Managed Identity:
    Quando a VM possui Managed Identity habilitada, a autenticação é feita automaticamente sem necessidade de fornecer credenciais explícitas.
    Essa é a forma mais segura e recomendada para aplicações rodando em Azure VMs.

  • Arquivo de configuração padrão (Azure CLI / Environment Variables):
    Caso você tenha o Azure CLI instalado e autenticado na máquina, ou defina as variáveis de ambiente AZURE_TENANT_ID, AZURE_CLIENT_ID e AZURE_CLIENT_SECRET, é possível usar essas configurações automaticamente.
    Isso permite não precisar passar manualmente as credenciais no código.

Requisitos

O Session Manager pode executar em um servidor dedicado para conseguir manter a comunicação constante com o Orquestrador BotCity.

Para comunicação correta, é obrigatório que o servidor Session Manager:

  • Possa se comunicar com o Orquestrador BotCity via HTTPS (Porta 443).
  • Possa alcançar os hosts via rede para gerenciar as sessões.
  • Tenha um usuário autorizado a estabelecer conexão RDP ou outra conexão necessária com os hosts.

Sugestão de configuração de ambiente

Para um ambiente dedicado apenas a execução do Session Manager:

  • SO: Linux
  • RAM: 2GB

Atenção a possíveis adequações de requisitos referente a comunicação em rede ou outros recursos que deseja adicionar.

Instalação

O Session Manager faz parte do BotCity Studio SDK.

Para obter o Session Manager, prossiga com a instalação descrita no guia de introdução.

Instalação de Runner

Ao instalar do SDK para o uso exclusivo do Session Manager não é necessário fazer a configuração de Runner nessa instalação.

Instalando como Serviço do Windows

Você pode instalar o BotCity Session Manager como um Serviço do Windows seguindo as instruções abaixo:

Tip

Você precisará de um sistema operacional Windows com privilégios administrativos.

Passo 1: Criar o Serviço

  1. Abra o Prompt de Comando como Administrador:

    • Pressione Win + X e selecione Prompt de Comando (Admin) ou Windows PowerShell (Admin).
  2. Execute o seguinte comando para criar um novo serviço:

    sc create SessionManagerService binPath="C:\caminho\para\seu\executável.exe service"
    
    • Substitua C:\caminho\para\seu\SessionManager.exe pelo caminho completo para o seu arquivo .exe.
    • Nota: Certifique-se de que não há espaço entre binPath= e o caminho.

Passo 2: Configurar o Serviço para Iniciar Automaticamente

  1. Execute o seguinte comando para definir o serviço para iniciar automaticamente na inicialização do sistema:

    sc config SessionManagerService start=auto
    
  2. Para iniciar o serviço imediatamente, use:

    sc start SessionManagerService
    

Passo 3: Verificar o Serviço

  1. Abra Serviços (pressione Win + R, digite services.msc e pressione Enter).
  2. Localize SessionManagerService na lista de serviços para confirmar que ele aparece.
  3. Verifique se o Tipo de inicialização do serviço está definido como Automático.
  4. Reinicie o sistema para verificar se o serviço inicia automaticamente ao inicializar.

Passo 4: Teste e Solução de Problemas

  • Para verificar o status do serviço, você pode usar:

    sc query SessionManagerService
    
  • Se o serviço não iniciar, verifique o log_sm.txt na pasta logs do BotCity Studio SDK.

  • Alternativamente, verifique o Visualizador de Eventos em Logs do Windows > Aplicativo.

Desinstalando o Serviço

Para remover o serviço, execute:

sc delete SessionManagerService
Esse comando exclui o serviço completamente.

Configuração

Toda a configuração do Session Manager é realizada via a interface de linha de comando (CLI) do Session Manager e salvo no arquivo config_file.smdb (por padrão na pasta conf/ da instalação).

Para executar o Session Manager, é necessário pelo menos:

  1. Adicionar um host
  2. Anexar um runner ao host adicionado

Veja nos passos seguintes como fazer a configuração.

Personalizar local do banco de dados

Você pode personalizar o local do banco de dados de configuração do Session Manager definindo o caminho completo para o arquivo smdb em seu arquivo de configuração conf/conf.bcf sob o parâmetro sessionManagerDBPath.

sessionManagerDBPath=/path/exemplo/BotCity/config_file.smdb

Comandos

Aqui está a lista de comandos disponíveis para a configuração do Session Manager, para ver os detalhes, clique no comando desejado.

host - add, edit, remove

Comandos para configuração de hosts no Session Manager.

runner - attach, edit, release

Comandos para configuração de runner no Session Manager.

list - all

Comando para listas as configurações feitas no Session Manager.

run - local

Comando para executar o Session Manager.