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á.
Valide e solucione problemas de implantações de frotas de contêineres
Uma implantação de frota, chamada de implantação neste tópico, é o processo Amazon GameLift Servers usado para substituir os contêineres nas instâncias de uma frota de contêineres por contêineres que usam as novas configurações da frota, como uma nova versão de definição de grupo de contêineres. Em vez de substituir todos os contêineres em execução de uma só vez, uma implantação primeiro verifica se os novos contêineres podem hospedar sessões de jogo e, em seguida, substitui o restante gradualmente para detectar alterações incorretas antes que elas sejam implantadas em toda a frota. Uma frota de contêineres inicia uma implantação em três situações:
-
Quando você cria uma frota com uma definição de grupo de contêineres. Se sua CreateContainerFleetsolicitação incluir uma definição de grupo de contêineres do servidor de jogos, a criação da frota iniciará uma implantação que instala seus contêineres nas novas instâncias da frota. Se você criar uma frota sem uma definição de grupo de contêineres, nenhuma instância será implantada e a frota não terá implantação até que você adicione uma definição de grupo de contêineres do servidor de jogos.
-
Quando você atualiza as definições do grupo de contêineres da frota ou outras configurações de contêineres. UpdateContainerFleetinicia uma implantação quando a atualização altera os contêineres que a frota executa, por exemplo, quando você especifica uma nova versão de definição de grupo de contêineres do servidor de jogos. Uma atualização que não altera nenhuma dessas configurações não inicia uma implantação. Para obter informações sobre quais configurações iniciam uma implantação, consulteAtualizar um GameLift Servidores Amazon frota de contêineres gerenciada.
-
Quando você adiciona locais a uma frota ativa. Amazon GameLift Serversinicia uma implantação nos novos locais usando as definições de grupo de contêineres configuradas da frota. Os locais existentes não são reimplantados. Você não pode adicionar locais enquanto outra implantação estiver em andamento.
Para ver os detalhes de uma implantação, chame DescribeFleetDeployment, que retorna um FleetDeploymentobjeto. Ele inclui o ID, o status e a configuração da implantação, junto com as versões de definição do grupo de contêineres que estão sendo implantadas e as versões de reversão. A DeploymentDetails.LatestDeploymentId propriedade da frota identifica sua implantação mais recente.
nota
As implantações se aplicam somente às frotas de contêineres gerenciadas.
Configurar uma implantação
Uma implantação DeploymentConfigurationé o conjunto de regras que controlam como a implantação ocorre em toda a frota e o que acontece se ela falhar. Para obter informações sobre os valores e padrões de cada configuração, consulte a Referência DeploymentConfigurationda Amazon GameLift ServersAPI.
Você define a configuração de implantação ao chamar UpdateContainerFleet ou editar a frota no console. CreateContainerFleetnão aceita uma configuração de implantação, portanto, a primeira implantação de uma frota sempre usa os valores padrão.
Como GameLift Servidores Amazon valida uma implantação
Quando uma implantação começa, Amazon GameLift Servers primeiro valida os grupos de contêineres do servidor do jogo em cada uma das localizações da frota. Ele opera os novos contêineres em uma pequena parte da capacidade existente da frota e verifica se eles estão saudáveis. Um novo grupo de contêineres de servidores de jogos fica íntegro quando um contêiner de servidor de jogos liga ProcessReady() para informar que está pronto para hospedar sessões de jogo.
Essa validação inicial verifica os grupos de contêineres do servidor do jogo. Se sua frota também usa uma definição de grupo de contêineres por instância, Amazon GameLift Servers atualize esses grupos depois de atualizar os grupos de servidores do jogo. Amazon GameLift Serversverifica os grupos por instância separadamente antes da conclusão da implantação; eles não usam a verificação do servidor do ProcessReady() jogo.
A validação falhará se um novo grupo de contêineres do servidor de jogos não ficar saudável antes de Amazon GameLift Servers parar de esperar. Para obter informações sobre motivos comuns e como investigá-los, consulteDepurar uma implantação prejudicada.
Se a validação falhar, Amazon GameLift Servers aplica a implantação ImpairmentStrategy e define o status da implantação como IMPAIRED (paraMAINTAIN) ou ROLLBACK_IN_PROGRESS (paraROLLBACK). Somente após o sucesso da validação em um local, os contêineres restantes que estão executando seus servidores de jogos lá são Amazon GameLift Servers substituídos.
Quanto tempo leva a validação
A validação demora mais quando a capacidade Amazon GameLift Servers usada para validação é hospedar sessões de jogos protegidas. A frota NewGameSessionProtectionPolicy determina a proteção padrão para novas sessões de jogo. Os valores válidos são NoProtection e FullProtection. A implantação ProtectionStrategy determina se a implantação respeita essa proteção. Os valores válidos são WITH_PROTECTION e IGNORE_PROTECTION.
Quando a frota está NewGameSessionProtectionPolicy configurada FullProtection e a implantação está ProtectionStrategy configurada paraWITH_PROTECTION, Amazon GameLift Servers permite um tempo limite de validação maior para que as sessões de jogo protegidas terminem. Com qualquer outra combinação, ele usa um tempo limite menor.
Importante
Se seus novos contêineres nunca ficarem íntegros e a frota usar FullProtection com uma WITH_PROTECTION implantação, a implantação poderá permanecer em IN_PROGRESS status até que as sessões de jogo protegidas terminem, antes que ela reporte uma falha. Para obter um sinal mais rápido, implante novas imagens de contêiner IGNORE_PROTECTION enquanto as testa ou cancele você mesmo a implantação. Para obter instruções sobre como cancelar uma implantação, consulteCancele uma implantação iniciando uma nova.
Se você protege sessões de jogo individuais com UpdateGameSessionuma frota que NewGameSessionProtectionPolicy estáNoProtection, Amazon GameLift Servers não estenda a espera por elas. Se essas sessões de jogo não terminarem a tempo, a validação poderá falhar mesmo que a nova configuração esteja funcionando.
Acompanhe o status da implantação
Para rastrear uma implantação no Amazon GameLift Serversconsole
Para obter informações sobre os valores do status de implantação e o que cada um significa, consulte DeploymentStatusa Referência da Amazon GameLift Servers API.
Depurar uma implantação prejudicada
Uma implantação deficiente significa que os novos contêineres não ficaram íntegros durante a validação: nenhum contêiner do servidor de jogos chamado ProcessReady() antes Amazon GameLift Servers parou de esperar, geralmente porque um contêiner saiu ou falhou ao iniciar. A causa geralmente está na imagem do contêiner ou no servidor do jogo. Descubra por que o contêiner saiu ou por que o servidor do jogo nunca ficou pronto.
Revise o registro de eventos da frota
O registro de eventos da frota registra o que Amazon GameLift Servers foi observado durante a implantação. Visualize na guia Eventos da frota no console ou ligue describe-fleet-events. Os códigos de evento a seguir são relevantes para uma implantação com falha:
-
GAME_SERVER_CONTAINER_GROUP_CRASHEDePER_INSTANCE_CONTAINER_GROUP_CRASHED— um grupo de contêineres saiu ou falhou ao iniciar. Quando Amazon GameLift Servers tem o código de saída do contêiner, ele inclui o código na mensagem do evento. -
GAME_SERVER_CONTAINER_GROUP_REPLACED_UNHEALTHYeINSTANCE_REPLACED_UNHEALTHY— Amazon GameLift Servers substituiu um grupo de contêineres ou uma instância que não ficou íntegra. Eles podem se repetir em todos os locais da frota enquanto uma implantação está falhando. -
SERVER_PROCESS_MISCONFIGURED_CONTAINER_PORT— um contêiner de servidor de jogos usou uma porta que não corresponde às portas declaradas na definição do grupo de contêineres. -
LOCATION_STATE_UPDATINGeLOCATION_STATE_ACTIVE— eles agrupam a implantação em cada local, o que ajuda você a alinhar outros eventos com a implantação que os produziu. -
COMPUTE_LOG_UPLOAD_FAILED— a coleta de registros de um contêiner parou de funcionar, então os registros desse contêiner podem estar incompletos ou ausentes.
Leia os registros do contêiner
Uma frota de contêineres LogConfiguration define Amazon GameLift Servers para onde envia a saída padrão de cada contêiner: CLOUDWATCH (o padrão)S3, ouNONE. Mantenha-o configurado CLOUDWATCH para S3 que a saída do contêiner esteja disponível quando uma implantação falhar. Quando um contêiner falha antes que o servidor do jogo comece a ser executado, por exemplo, porque o ponto de entrada do contêiner se refere a um arquivo que não está na imagem, essa saída é o único registro da falha. Para obter informações sobre o registro de contêineres, consulteDiferenças de registro: frotas gerenciadas EC2 versus frotas de contêineres.
Conecte-se a um contêiner danificado
Se você implantou a estratégia de MAINTAIN deficiência, pode se conectar a um contêiner que o Amazon GameLift Servers guardou e inspecioná-lo diretamente. Use isso para verificar as permissões do arquivo, confirmar quais arquivos a imagem realmente contém e executar o executável do servidor do jogo manualmente para ver o que ele relata. Para obter instruções sobre como se conectar a um contêiner, consulteConecte-se a contêineres.
Problemas comuns de implantação
Os sintomas a seguir são comuns em implantações com falha ou lentidão, juntamente com suas causas usuais.
- O contêiner começa e sai imediatamente, repetidamente.
-
Se o ponto de entrada do contêiner não puder ser executado, verifique o seguinte:
-
Verifique se o script de inicialização e o executável do servidor do jogo estão marcados como executáveis na imagem.
-
Confirme se a arquitetura de CPU do executável corresponde ao tipo de instância da frota.
-
Verifique se a imagem contém o intérprete e as bibliotecas compartilhadas de que o executável precisa.
Para obter informações sobre como criar uma imagem que Amazon GameLift Servers possa ser executada, consulteCrie uma imagem de contêiner para GameLift Servidores Amazon.
-
- A implantação é lenta, mas nada está falhando.
-
Uma
WITH_PROTECTIONimplantação espera que as sessões de jogo protegidas terminem, tanto durante a validação quanto quando substitui os contêineres da frota. Verifique as sessões de jogo ativas da frota antes de tratar uma missão longa como uma falha. Para obter informações sobre os tempos de espera da validação, consulteQuanto tempo leva a validação.
Cancele uma implantação iniciando uma nova
Para cancelar uma implantação e retornar a frota à configuração anterior, ligue UpdateContainerFleet ou edite a frota no console para iniciar uma nova implantação que reverta as alterações. O caso mais comum é uma nova versão de definição de grupo de contêineres, que é revertida pelo procedimento a seguir. Amazon GameLift Serversregistra as versões que a frota usou quando esteve ativa pela última vez na implantação em andamento como RollbackGameServerBinaryArn eRollbackPerInstanceBinaryArn, para que você não precise descobrir para qual versão voltar. Se a implantação também alterou outras configurações, como a configuração de log ou o intervalo de portas de conexão, redefina-as na mesma UpdateContainerFleet solicitação.
Antes de começar, configure o AWS CLI para sua conta e identifique a casa da frota Região da AWS. Esse procedimento requer uma implantação em andamento e uma versão anterior da definição do grupo de contêineres para restauração. Use list-fleet-deployments para encontrar o ID de implantação. Para instruções, consulte Acompanhe o status da implantação.
Nos comandos, fleet-id substitua pela ID da frota, deployment-id pela ID de implantação em andamento e fleet-home-region pela casa Região da AWS da frota.
Para substituir uma implantação em andamento por uma versão anterior do contêiner (AWS CLI)
-
Use o AWS CLI comando a seguir para obter a versão para a qual retornar:
aws gamelift describe-fleet-deployment \ --fleet-idfleet-id\ --deployment-iddeployment-id\ --regionfleet-home-regionNa resposta,
RollbackGameServerBinaryArncontém a versão de definição do grupo de contêineres do servidor de jogos que a frota usou quando esteve ativa pela última vez. Se a frota tiver um grupo de contêineres por instância,RollbackPerInstanceBinaryArnmantém essa versão. -
Use o AWS CLI comando a seguir para iniciar uma nova implantação com essa versão.
rollback-game-server-cgd-arnSubstitua peloRollbackGameServerBinaryArnvalor da etapa 1. Se a frota tiver um grupo de contêineres por instância, passe também--per-instance-container-group-definition-namecom oRollbackPerInstanceBinaryArnvalor.aws gamelift update-container-fleet \ --fleet-idfleet-id\ --game-server-container-group-definition-namerollback-game-server-cgd-arn\ --regionfleet-home-region -
Confirme se a implantação anterior relata o
CANCELLEDstatus e se a nova implantação reportaCOMPLETEquando terminar.
nota
Cancelar uma implantação dessa forma não é uma parada instantânea. A nova implantação passa pelas mesmas etapas de qualquer outra, incluindo a validação, portanto, a frota leva algum tempo para ser instalada. Uma versão em que a frota funcionava com sucesso antes geralmente é validada rapidamente.
Tópicos relacionados
Para obter mais informações, consulte os tópicos a seguir.