View a markdown version of this page

Conecte-se a contêineres - Amazon GameLift Servers

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 -it container-short-id sh

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.

  1. No Amazon GameLift Servers console, escolha Contêineres gerenciados no painel de navegação e, em seguida, Frotas.

  2. Escolha o ID da frota que contém o contêiner ou a sessão de jogo que você deseja acessar.

  3. 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.

  4. Selecione Conectar. Copie o comando exibido para conectar-se ao contêiner e escolha Conectar novamente.

  5. 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.

  6. 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.

  1. Obtenha o nome da computação. Ligue describe-game-sessionspara obter o ComputeName para 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-5555bbbb66cc

    Resposta

    { "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 ComputeName valor da resposta (por exemplo,62c5ff7f7a9a445d84877074c80aeafc).

  2. 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— A ContainerName areia ContainerRuntimeId para 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 62c5ff7f7a9a445d84877074c80aeafc

    Resposta

    { "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" }
  3. 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.

  4. Encontre o nome do contêiner do servidor do jogo. Ligue describe-container-group-definitionusando a GameServerContainerGroupDefinitionArn etapa 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/MyGameServerGroup

    Resposta

    { "ContainerGroupDefinition": { "ContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2:123456789012:containergroupdefinition/MyGameServerGroup:3", "Name": "MyGameServerGroup", "ContainerGroupType": "GAME_SERVER", "GameServerContainerDefinition": { "ContainerName": "game-server", . . . }, . . . } }

    Observe o GameServerContainerDefinition.ContainerName valor (por exemplo,game-server).

  5. 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-access resposta ContainerIdentifiers da etapa 2. Observe o valor ContainerRuntimeId.

  6. Conecte-se ao contêiner. Use o ContainerRuntimeId como ID do contêiner e execute o seguinte comando:

    sudo docker exec -it 02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678 sh