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á.
Conecte-se a contêineres
Para frotas de Amazon GameLift Servers contêineres, você pode acessar contêineres de servidores de jogos em execução em uma instância de frota. Use o acesso ao contêiner para solucionar problemas de sessões de jogos, inspecionar registros e depurar problemas de tempo de execução.
Conecte-se a um contêiner
Antes de começar:
Conecte-se à instância da frota. Para instruções, consulte Conecte-se às instâncias da frota.
Execute o comando a seguir para listar os contêineres em execução na instância:
sudo docker ps
A saída lista todos os contêineres em execução na instância, incluindo contêineres de servidores de jogos e Amazon GameLift Servers contêineres internos. Procure contêineres com a imagem do seu servidor de jogos para identificar os contêineres do servidor de jogos.
Exemplos de resultado:
CONTAINER ID IMAGE COMMAND CREATED STATUS b9676e9489f5 game-server-container "/bin/sh -c ./$GAME_…" 2 days ago Up 2 days 1d1c8443efe2 support-container "/bin/sh -c ./$SUPPO…" 2 days ago Up 2 days
Para se conectar a um contêiner de servidor de jogos, use o ID curto do contêiner da CONTAINER ID coluna. Isso fornece acesso total de leitura e gravação ao sistema de arquivos do contêiner.
sudo docker exec -itcontainer-short-idsh
Conecte-se a um contêiner por meio do console
Você pode se conectar aos contêineres do servidor de jogos a partir do Amazon GameLift Servers console usando o Amazon EC2 Systems Manager (SSM). Esse método fornece acesso seguro sem exigir configuração adicional ou gerenciamento de credenciais. Você pode se conectar a um contêiner na guia Computações ou na guia Sessões de jogos na página de detalhes da frota.
-
No Amazon GameLift Servers console, escolha Contêineres gerenciados no painel de navegação e, em seguida, Frotas.
-
Escolha o ID da frota que contém o contêiner ou a sessão de jogo que você deseja acessar.
-
Na página de detalhes da frota, escolha uma das seguintes guias:
Computações — Lista os contêineres em execução na frota. Selecione o contêiner ao qual você deseja se conectar.
Sessões de jogo — Lista as sessões de jogo da frota. Selecione a sessão do jogo para se conectar ao contêiner que a hospeda.
-
Selecione Conectar. Copie o comando exibido para conectar-se ao contêiner e escolha Conectar novamente.
-
Na caixa de diálogo de conexão, escolha Executar para criar uma nova sessão SSM. O sistema autentica sua sessão por meio do AWS Key Management Service (AWS KMS) e abre um terminal no seu navegador.
-
Depois de se conectar à instância, cole o comando docker da etapa 4 e execute-o na instância para acessar o contêiner.
Conecte-se ao contêiner que hospeda uma sessão de jogo
Para se conectar ao contêiner do servidor de jogos que hospeda uma sessão de jogo específica, siga estas etapas.
-
Obtenha o nome da computação. Ligue describe-game-sessionspara obter o
ComputeNamepara a sessão do jogo.Solicitação
aws gamelift describe-game-sessions \ --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --game-session-id arn:aws:gamelift:us-west-2::gamesession/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa/gs-1111aaaa-2222-3333-4444-5555bbbb66ccResposta
{ "GameSessions": [ { "GameSessionId": "arn:aws:gamelift:us-west-2::gamesession/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa/gs-1111aaaa-2222-3333-4444-5555bbbb66cc", "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "ComputeName": "62c5ff7f7a9a445d84877074c80aeafc", "Status": "ACTIVE", . . . } ] }Observe o
ComputeNamevalor da resposta (por exemplo,62c5ff7f7a9a445d84877074c80aeafc). -
Obtenha acesso à computação e atributos de contêiner. Ligue get-compute-accesscom o ID da frota e o nome do computador.
A resposta inclui os seguintes campos:
ContainerIdentifiers— AContainerNameareiaContainerRuntimeIdpara cada contêiner.GameServerContainerGroupDefinitionArn— O ARN da definição do grupo de contêineres.Credentials— Credenciais temporárias para se conectar à instância.
Solicitação
aws gamelift get-compute-access \ --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --compute-name 62c5ff7f7a9a445d84877074c80aeafcResposta
{ "ComputeName": "62c5ff7f7a9a445d84877074c80aeafc", "ContainerIdentifiers": [ { "ContainerName": "game-server", "ContainerRuntimeId": "02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678" } ], "Credentials": { "AccessKeyId": "ASIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "AQoDYXdzEJr...<remainder of session token>" }, "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "GameServerContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2::containergroupdefinition/MyGameServerGroup" } -
Conecte-se à instância. Use as credenciais da etapa 2 para se conectar à instância da frota. Para obter instruções detalhadas, consulte Conecte-se às instâncias da frota.
-
Encontre o nome do contêiner do servidor do jogo. Ligue describe-container-group-definitionusando a
GameServerContainerGroupDefinitionArnetapa 2 para identificar o nome do contêiner do servidor de jogos.Solicitação
aws gamelift describe-container-group-definition \ --name arn:aws:gamelift:us-west-2::containergroupdefinition/MyGameServerGroupResposta
{ "ContainerGroupDefinition": { "ContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2:123456789012:containergroupdefinition/MyGameServerGroup:3", "Name": "MyGameServerGroup", "ContainerGroupType": "GAME_SERVER", "GameServerContainerDefinition": { "ContainerName": "game-server", . . . }, . . . } }Observe o
GameServerContainerDefinition.ContainerNamevalor (por exemplo,game-server). -
Identifique o ID de tempo de execução do contêiner do servidor de jogos. Usando o nome do contêiner do servidor de jogo da etapa anterior, encontre a entrada correspondente na
get-compute-accessrespostaContainerIdentifiersda etapa 2. Observe o valorContainerRuntimeId. -
Conecte-se ao contêiner. Use o
ContainerRuntimeIdcomo ID do contêiner e execute o seguinte comando:sudo docker exec -it 02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678 sh
Exibir mapeamentos de portas de contêineres
Os mapeamentos de portas mostram como as portas do contêiner são mapeadas para as portas de conexão nas instâncias da sua frota. Cada porta de contêiner que aceita tráfego de entrada recebe uma porta de conexão na instância. Você pode verificar os mapeamentos de portas para descobrir quais portas de conexão são mapeadas para as portas do seu contêiner ou para solucionar problemas de conexão. Você pode visualizar mapeamentos de portas no Amazon GameLift Servers console ou usar o SDK AWS CLI ou AWS .
Exibir mapeamentos de portas no console
No Amazon GameLift Servers console, escolha Contêineres gerenciados no painel de navegação e, em seguida, Frotas. Escolha uma frota para abrir a página de detalhes da frota. Você pode visualizar mapeamentos de portas nos seguintes locais:
-
Página de detalhes da instância — Mostra mapeamentos de portas para o grupo de contêineres por instância na instância selecionada.
-
Página de detalhes de computação — Mostra mapeamentos de portas para o grupo de contêineres do servidor de jogos na computação selecionada.
Ambas as páginas incluem um campo de pesquisa para filtrar mapeamentos de portas pelo nome do contêiner.
Visualize mapeamentos de portas com o AWS CLI
Use o describe-container-group-port-mappings comando para recuperar mapeamentos de portas para um grupo de contêineres em uma instância de frota. Especifique o tipo de grupo de contêineres e um --compute-name (para grupos de servidores de jogos) ou um --instance-id (para grupos por instância). Opcionalmente, inclua o --container-name parâmetro para filtrar os resultados em um contêiner específico.
Exemplo: grupo de contêineres de servidores de jogos
O comando a seguir recupera mapeamentos de portas para o grupo de contêineres do servidor de jogos em um computador específico.
aws gamelift describe-container-group-port-mappings \ --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --container-group-type GAME_SERVER \ --compute-name 62c5ff7f7a9a445d84877074c80aeafc
Se for bem-sucedido, Amazon GameLift Servers retornará uma resposta como a seguinte:
{ "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "Location": "us-west-2", "ContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2:123456789012:containergroupdefinition/MyGameServerGroup", "ContainerGroupType": "GAME_SERVER", "ComputeName": "62c5ff7f7a9a445d84877074c80aeafc", "InstanceId": "i-1234567890abcdef0", "ContainerGroupPortMappings": [ { "ContainerName": "MyGameServer", "ContainerRuntimeId": "a1b2c3d4e5f6", "ContainerPortMappings": [ { "ContainerPort": 7777, "ConnectionPort": 1025, "Protocol": "UDP" }, { "ContainerPort": 8080, "ConnectionPort": 1026, "Protocol": "TCP" } ] } ] }
Exemplo: grupo de contêineres por instância
O comando a seguir recupera mapeamentos de portas para o grupo de contêineres por instância em uma instância específica.
aws gamelift describe-container-group-port-mappings \ --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --container-group-type PER_INSTANCE \ --instance-id i-1234567890abcdef0
Se for bem-sucedido, Amazon GameLift Servers retornará uma resposta como a seguinte:
{ "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "Location": "us-west-2", "ContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2:123456789012:containergroupdefinition/MyPerInstanceGroup", "ContainerGroupType": "PER_INSTANCE", "InstanceId": "i-1234567890abcdef0", "ContainerGroupPortMappings": [ { "ContainerName": "MySupportContainer", "ContainerRuntimeId": "f6e5d4c3b2a1", "ContainerPortMappings": [ { "ContainerPort": 8443, "ConnectionPort": 2025, "Protocol": "TCP" } ] } ] }