

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
<a name="containers-remote-access"></a>

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
<a name="containers-remote-access-connect"></a>

**Antes de começar:**  
Conecte-se à instância da frota. Para instruções, consulte [Conecte-se às instâncias da frota](fleets-remote-access.md).

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
<a name="containers-remote-access-console"></a>

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

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

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

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

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

1. 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
<a name="containers-remote-access-game-session"></a>

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-sessions](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-game-sessions.html)para 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`).

1. **Obtenha acesso à computação e atributos de contêiner.** Ligue [get-compute-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-compute-access.html)com 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"
   }
   ```

1. **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](fleets-remote-access.md).

1. **Encontre o nome do contêiner do servidor do jogo.** Ligue [describe-container-group-definition](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-container-group-definition.html)usando 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`).

1. **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`.

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

   ```
   sudo docker exec -it 02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678 sh
   ```

## Exibir mapeamentos de portas de contêineres
<a name="containers-remote-access-port-mappings"></a>

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
<a name="containers-remote-access-port-mappings-console"></a>

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
<a name="containers-remote-access-port-mappings-cli"></a>

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"
        }
      ]
    }
  ]
}
```