Depurar problemas com a GameLift frota da Amazon - Amazon GameLift

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Depurar problemas com a GameLift frota da Amazon

Este tópico fornece orientação sobre problemas de configuração de frota para uma solução de hospedagem GameLift gerenciada da Amazon. Para obter uma solução de problemas adicional, é possível acessar remotamente uma instância de frota quando a frota estiver ativa. Consulte Conecte-se remotamente às instâncias da GameLift frota da Amazon.

Depurar problemas de criação de frotas

Quando uma frota é criada, o GameLift serviço da Amazon inicia um fluxo de trabalho que implanta uma nova instância em cada um dos locais da frota e a prepara para executar seus servidores de jogos. Para obter uma descrição detalhada, consulte Como funciona a criação de GameLift frotas da Amazon. Uma frota não pode hospedar sessões de jogo e jogadores até atingir o status Ativo. Esta seção discute os problemas mais comuns que impedem que as frotas se tornem ativas.

Download e validação

Durante essa fase, a criação da frota pode falhar se houver problemas com os arquivos de compilação extraídos, se não for possível executar o script de instalação, ou se os executáveis designados na configuração do runtime não forem incluídos nos arquivos de compilação. A Amazon GameLift fornece registros relacionados a cada um desses problemas.

Se os logs não revelaram um problema, é possível que o problema tenha ocorrido devido a um erro interno de serviço. Nesse caso, tente criar a frota novamente. Se o problema persistir, faça upload da compilação de jogo novamente (caso os arquivos estejam corrompidos). Você também pode entrar em contato com o GameLift suporte da Amazon ou postar uma pergunta no fórum.

Desenvolvimento

Problemas que causam falha durante a fase de compilação muitas vezes ocorrem devido a problemas com os arquivos de compilação de jogo e/ou o script de instalação. Verifique se os arquivos de compilação do jogo, conforme enviados para a Amazon GameLift, podem ser instalados em uma máquina executando o sistema operacional apropriado. Use uma instalação limpa do sistema operacional, não um ambiente de desenvolvimento existente.

Ativação

Os problemas mais comuns na criação de frotas ocorrem durante a fase de Ativação. Durante essa fase, vários elementos estão sendo testados, incluindo a viabilidade do servidor do jogo, as configurações de tempo de execução e a capacidade do servidor do jogo de interagir com o GameLift serviço da Amazon usando o servidorSDK. Problemas comuns que surgem durante a ativação de frotas incluem:

Há falha na inicialização de processos do servidor.

Primeiro, verifique se você definiu corretamente o caminho de inicialização e os parâmetros de inicialização opcionais na configuração do tempo de execução da frota. Você pode visualizar a configuração atual do tempo de execução da frota usando a seção Detalhes (página de detalhes da frota) ou chamando o AWS CLI comando describe-runtime-configuration. Se a configuração do tempo de execução estiver correta, verifique se há problemas com os arquivos de compilação do jogo e/ou o script de instalação.

Os processos do servidor começam, mas a frota deixa de ser ativada.

Se os processos do servidor iniciarem e forem executados com sucesso, mas a frota não passar para o status Ativo, uma causa provável é que o processo do servidor não esteja notificando a Amazon de GameLift que está pronto para hospedar sessões de jogo. Verifique se o servidor do jogo está chamando corretamente a API ação Servidor ProcessReady() (consulteInicializar o processo do servidor).

VPCfalha na solicitação de conexão de emparelhamento.

Para frotas criadas com uma conexão de VPC emparelhamento (consulteComo configurar o emparelhamento de VPC com uma nova frota), o VPC emparelhamento é feito durante essas fases de ativação. Se um VPC peering falhar por qualquer motivo, a nova frota não conseguirá passar para o status Ativo. Você pode acompanhar o sucesso ou a falha da solicitação de emparelhamento describe-vpc-peering-connectionsligando. Certifique-se de verificar se existe uma autorização de VPC emparelhamento válida (describe-vpc-peering-authorizations, pois as autorizações só são válidas por 24 horas.

Problemas de processo do servidor

Os processos do servidor começam, mas falham rapidamente ou apresentam integridade insatisfatória.

Outros problemas com a compilação do jogo, podendo acontecer quando se tenta executar muitos processos de servidor simultaneamente na instância. O número ideal de processos simultâneos depende do tipo de instância e dos requisitos de recursos do servidor de jogos. Tente reduzir o número de processos simultâneos, algo definido na configuração de tempo de execução da frota, para ver se o desempenho melhora. Você pode alterar a configuração de tempo de execução de uma frota usando o GameLift console da Amazon (edite as configurações de alocação de capacidade da frota) ou chamando o AWS CLI comando update-runtime-configuration.

Problemas de exclusão de frota

Uma frota não pode ser encerrada devido à contagem máxima de instâncias.

A mensagem de erro indica que a frota que está sendo excluída ainda tem instâncias ativas, o que não é permitido. Você deve primeiro reduzir uma frota para zero instâncias ativas. Isso é feito definindo manualmente a contagem de instâncias desejada da frota para "0" e aguardando até que a redução entre em vigor. Desligue a escalabilidade automática, pois ela neutralizará as configurações manuais.

VPCações não são autorizadas.

Esse problema se aplica somente às frotas para as quais você criou especificamente conexões de VPC emparelhamento (consulte. Emparelhamento de VPC para o Amazon GameLift Esse cenário ocorre porque o processo de exclusão de uma frota também inclui a exclusão da frota VPC e de qualquer conexão de VPC peering. Primeiro, você deve obter uma autorização chamando o GameLift serviço da Amazon API CreateVpcPeeringAuthorization() ou usando o AWS CLI comandocreate-vpc-peering-authorization. Quando tiver a autorização, você pode excluir a frota.

Problemas com a frota de servidores em tempo real

Sessões de jogos zumbi: um jogo é iniciado e executado, mas nunca termina.

Você pode observar esses problemas como qualquer um dos seguintes cenários:

  • Atualizações de script não são selecionadas por servidores em tempo real da frota.

  • A frota atinge a capacidade máxima rapidamente e não reduz quando as atividades dos jogadores (como novas solicitações de sessão de jogo) é reduzida.

Isso é quase certamente um resultado de não chamar processEnding com êxito no script em tempo real. Embora a frota se torne ativa e as sessões de jogos sejam iniciadas, não há um método para interrompê-las. Como resultado, o servidor em tempo real que está executando a sessão de jogo nunca é liberado para iniciar uma nova, e as novas sessões de jogos só podem ser iniciadas quando novos servidores em tempo real forem rotacionados. Além disso, as atualizações no script em tempo real não afetam as sessões de jogo que já estão em execução, apenas as novas.

Para impedir que isso aconteça, os scripts precisam fornecer um mecanismo para acionar uma chamada de processEnding. Conforme ilustrado no Exemplo de script de servidores em tempo real, uma maneira é programar um tempo limite de sessão ociosa em que, se nenhum jogador estiver conectado por um determinado período de tempo, o script encerrará a sessão do jogo atual.

No entanto, se você se encaixar nesse cenário, há duas alternativas para destravar os servidores em tempo real. O truque é acionar os processos do servidor em tempo real (ou as instâncias da frota subjacentes) para reiniciar. Nesse caso, fecha GameLift automaticamente as sessões do jogo para você. Assim que os servidores em tempo real são liberados, eles podem iniciar novas sessões de jogos usando a versão mais recente do script em tempo real.

Há dois métodos para fazer isso, dependendo de quão disseminado é o problema:

  • Reduza toda a frota. Esse método é o mais simples de executar, mas tem um efeito amplo. Reduza a frota para zero instância, aguarde até que a frota seja totalmente reduzida e expanda-a novamente. Isso limpará todas as sessões de jogos existentes e permitirá que você comece de novo com o script em tempo real atualizado mais recentemente.

  • Acesse a instância remotamente e reinicie o processo. Esta será uma boa opção se você tiver apenas alguns processos para corrigir. Se você já estiver conectado à instância, como para logs finais ou depuração, esse poderá ser o método mais rápido. Consulte Conecte-se remotamente às instâncias da GameLift frota da Amazon.

Caso opte por não incluir uma maneira de chamar processEnding no script em tempo real, haverá algumas situações delicadas que poderão ocorrer, mesmo quando a frota estiver ativa e sessões de jogos estiverem iniciadas. Primeiro, uma sessão de jogo em execução não termina. Como resultado, o processo do servidor que está executando a sessão do jogo nunca é liberado para iniciar uma nova sessão de jogo. Em segundo lugar, o servidor em tempo real não recebe nenhuma atualização de script.