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:
- Monitoramento da Fila: O Session Manager monitora continuamente a fila de tarefas do Orquestrador BotCity.
- Ativação de Recursos: Quando há demanda de tarefas, os recursos são ativados para lidar com a carga.
- 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 ohost
. 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 ambienteAZURE_TENANT_ID
,AZURE_CLIENT_ID
eAZURE_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
-
Abra o Prompt de Comando como Administrador:
- Pressione
Win + X
e selecione Prompt de Comando (Admin) ou Windows PowerShell (Admin).
- Pressione
-
Execute o seguinte comando para criar um novo serviço:
- 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.
- Substitua
Passo 2: Configurar o Serviço para Iniciar Automaticamente
-
Execute o seguinte comando para definir o serviço para iniciar automaticamente na inicialização do sistema:
-
Para iniciar o serviço imediatamente, use:
Passo 3: Verificar o Serviço
- Abra Serviços (pressione
Win + R
, digiteservices.msc
e pressione Enter). - Localize
SessionManagerService
na lista de serviços para confirmar que ele aparece. - Verifique se o Tipo de inicialização do serviço está definido como Automático.
- 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:
-
Se o serviço não iniciar, verifique o
log_sm.txt
na pastalogs
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:
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:
- Adicionar um
host
- Anexar um
runner
aohost
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
.
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.