Trabalhar com o Amazon GameLift Agent
O Amazon GameLift Agent supervisiona a execução dos processos do servidor de jogos nas frotas do Amazon GameLift. Implantado em cada computação de uma frota, o Agent fornece gerenciamento automatizado de processos, gerenciamento de hospedagem e registro em log para a computação. Para usar o Agent, a compilação de servidor de jogos precisa estar integrada ao o SDK 5.x ou posterior do servidor Amazon GameLift.
O Amazon GameLift Agent está disponível externamente para uso com frotas do Amazon GameLift que não são gerenciadas no EC2. (As frotas gerenciadas do EC2 lidam com as tarefas do Agent automaticamente.) É possível operar frotas do Amazon GameLift, inclusive frotas do Anywhere, com ou sem o Agent. Sem o Agent, será necessário uma solução alternativa para realizar as tarefas necessárias.
Ao ser implantado em uma computação, o Amazon GameLift Agent deve ser iniciado antes de qualquer processo do servidor de jogos. No início, o Agent realiza as seguintes tarefas:
Registra a computação com uma frota do Amazon GameLift Anywhere usando a API RegisterCompute.
Chama a API GetComputeAuthToken para buscar um token de autorização e armazená-lo para uso pelos processos do servidor que estão sendo executados na computação.
-
Define a variável de ambiente do URL do WebSocket para a computação e estabelece uma conexão WebSocket com o serviço do Amazon GameLift.
-
Solicita a versão mais recente da configuração de tempo de execução da frota ao serviço do Amazon GameLift.
-
Inicia e interrompe os processos do servidor de acordo com as instruções de configuração de tempo de execução.
O código-fonte e as instruções de compilação do Amazon GameLift Agent estão disponíveis no GitHub do Amazon GameLift Agent
Sobre o Agent
O Amazon GameLift Agent foi projetado para executar as seguintes tarefas para as frotas:
Gerenciamento de processos
Inicia novos processos do servidor conforme definido nas instruções de tempo de execução. O Agent pode usar uma configuração de tempo de execução personalizada que é implantada com o Agent. Como alternativa, é possível fornecer uma
RuntimeConfiguration
como parte da definição da frota. Essa abordagem tem a vantagem de permitir a modificação da configuração de tempo de execução da frota a qualquer momento. O Agent solicita periodicamente configurações de tempo de execução atualizadas do serviço do Amazon GameLift.Monitora as ativações dos processos do servidor e encerra os processos quando eles não são ativados a tempo.
Envia heartbeats para o Amazon GameLift. Se o Agent não enviar heartbeats, a computação poderá ser marcada como obsoleta.
Reporta ao Amazon GameLift quando um processo do servidor termina. O Amazon GameLift usa essas informações para monitorar a disponibilidade do servidor de jogos para o posicionamento de sessões de jogos.
Emite eventos de frota para processos de servidor, incluindo:
-
SERVER_PROCESS_INVALID_PATH
: os parâmetros de inicialização do processo do servidor de jogos foram configurados incorretamente. -
SERVER_PROCESS_TERMINATED_UNHEALTHY
: o processo do servidor de jogos não relatou uma verificação de integridade válida dentro de 3 minutos após a ativação e, portanto, foi encerrado. -
SERVER_PROCESS_FORCE_TERMINATED
: o processo do servidor de jogos não foi encerrado corretamente após o envio deOnProcessTerminate()
dentro de 30 segundos. -
SERVER_PROCESS_CRASHED
: um processo do servidor de jogos travou por algum motivo.
-
Gerenciamento de computação
Recebe mensagens do serviço do Amazon GameLift para encerrar a computação.
Solicita que a computação seja encerrada pelo Amazon GameLift.
Registro em log
Faz upload de logs em um bucket do Amazon S3 em sua conta da AWS.