

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Conéctese a contenedores
<a name="containers-remote-access"></a>

En el caso de las flotas de Amazon GameLift Servers contenedores, puedes acceder a los contenedores del servidor del juego que se ejecutan en una instancia de flota. Usa el acceso a los contenedores para solucionar problemas de las sesiones de juego, inspeccionar los registros y depurar los problemas de tiempo de ejecución.

## Conectarse a un contenedor
<a name="containers-remote-access-connect"></a>

**Antes de comenzar:**  
Conéctese a la instancia de la flota. Para obtener instrucciones, consulte [Conéctese a instancias de flota](fleets-remote-access.md).

Ejecuta el siguiente comando para ver una lista de los contenedores en ejecución en la instancia:

```
sudo docker ps
```

El resultado muestra todos los contenedores que se ejecutan en la instancia, incluidos los contenedores del servidor de juegos y Amazon GameLift Servers los contenedores internos. Busca contenedores con la imagen del servidor de juegos para identificar los contenedores del servidor de juegos.

**Ejemplo de salida:**

```
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 conectarte a un contenedor de servidor de juegos, usa el identificador abreviado del contenedor que aparece en la `CONTAINER ID` columna. Esto te da acceso completo de lectura y escritura al sistema de archivos del contenedor.

```
sudo docker exec -it {{container-short-id}} sh
```

## Conectarse a un contenedor a través de la consola
<a name="containers-remote-access-console"></a>

Puede conectarse a los contenedores del servidor de juegos desde la Amazon GameLift Servers consola mediante Amazon EC2 Systems Manager (SSM). Este método proporciona un acceso seguro sin necesidad de configuración adicional ni administración de credenciales. Puedes conectarte a un contenedor desde la pestaña **Computes** o la pestaña **Sesiones de juego** de la página de detalles de la flota.

1. En la Amazon GameLift Servers consola, selecciona **Contenedores gestionados** en el panel de navegación y, a continuación, **Flotas**.

1. Elige el ID de flota que contiene el contenedor o la sesión de juego a la que quieres acceder.

1. En la página de detalles de la flota, selecciona una de las siguientes pestañas:
   + **Calcula**: muestra los contenedores que se encuentran en circulación en la flota. Seleccione el contenedor al que desee conectarse.
   + **Sesiones de juego**: muestra las sesiones de juego de la flota. Selecciona la sesión de juego para conectarte al contenedor que la aloja.

1. Elija **Conectar**. Copie el comando que se muestra para conectarse al contenedor y, a continuación, vuelva a seleccionar **Conectar**.

1. En el cuadro de diálogo de conexión, elija **Ejecutar** para crear una nueva sesión de SSM. El sistema autentica la sesión a través del Servicio de administración de AWS claves (AWS KMS) y abre una terminal en el navegador.

1. Una vez que te hayas conectado a la instancia, pega el comando docker del paso 4 y ejecútalo en la instancia para acceder al contenedor.

## Conectarse al contenedor que aloja una sesión de juego
<a name="containers-remote-access-game-session"></a>

Para conectarte al contenedor del servidor de juegos que aloja una sesión de juego específica, sigue estos pasos.

1. **Obtenga el nombre del recurso de computación.** Llama [describe-game-sessions](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-game-sessions.html)`ComputeName`para obtener la sesión de juego.

   **Solicitud**

   ```
   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
   ```

   **Respuesta**

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

   Anote el `ComputeName` valor de la respuesta (por ejemplo,`62c5ff7f7a9a445d84877074c80aeafc`).

1. **Obtenga el acceso al cómputo y los atributos del contenedor.** Llame [get-compute-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-compute-access.html)con el identificador de la flota y el nombre del equipo.

   La respuesta incluye los siguientes campos:
   + `ContainerIdentifiers`— El `ContainerName` y `ContainerRuntimeId` para cada contenedor.
   + `GameServerContainerGroupDefinitionArn`— El ARN de la definición del grupo de contenedores.
   + `Credentials`— Credenciales temporales para conectarse a la instancia.

   **Solicitud**

   ```
   aws gamelift get-compute-access \
       --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
       --compute-name 62c5ff7f7a9a445d84877074c80aeafc
   ```

   **Respuesta**

   ```
   {
     "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. **Conéctese a la instancia.** Utilice las credenciales del paso 2 para conectarse a la instancia de la flota. Para obtener instrucciones detalladas, consulte [Conéctese a instancias de flota](fleets-remote-access.md).

1. **Busca el nombre del contenedor del servidor del juego.** Llama [describe-container-group-definition](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-container-group-definition.html)usando el `GameServerContainerGroupDefinitionArn` paso 2 para identificar el nombre del contenedor del servidor del juego.

   **Solicitud**

   ```
   aws gamelift describe-container-group-definition \
       --name arn:aws:gamelift:us-west-2::containergroupdefinition/MyGameServerGroup
   ```

   **Respuesta**

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

   Anote el `GameServerContainerDefinition.ContainerName` valor (por ejemplo,`game-server`).

1. **Identifica el ID de tiempo de ejecución del contenedor del servidor de juegos.** Con el nombre del contenedor del servidor de juegos del paso anterior, busca la entrada coincidente en la `get-compute-access` respuesta `ContainerIdentifiers` del paso 2. Anote el valor `ContainerRuntimeId`.

1. **Conéctese al contenedor.** `ContainerRuntimeId`Utilícelo como identificador del contenedor y ejecute el siguiente comando:

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

## Vea las asignaciones de puertos del contenedor
<a name="containers-remote-access-port-mappings"></a>

Las asignaciones de puertos muestran cómo los puertos de contenedores se asignan a los puertos de conexión de las instancias de su flota. A cada puerto de contenedor que acepta tráfico entrante se le asigna un puerto de conexión en la instancia. Puedes comprobar las asignaciones de puertos para descubrir qué puertos de conexión se asignan a los puertos de tu contenedor o para solucionar problemas de conexión. Puedes ver las asignaciones de puertos en la Amazon GameLift Servers consola o usar el SDK. AWS CLI AWS 

### Vea las asignaciones de puertos en la consola
<a name="containers-remote-access-port-mappings-console"></a>

**En la Amazon GameLift Servers consola, seleccione **Contenedores gestionados** en el panel de navegación y, a continuación, Flotas.** Selecciona una flota para abrir la página de detalles de la flota. Puede ver los mapas de puertos en las siguientes ubicaciones:
+ **Página de detalles de la instancia**: muestra las asignaciones de puertos para el grupo de contenedores por instancia de la instancia seleccionada.
+ **Página de detalles del proceso**: muestra las asignaciones de puertos para el grupo de contenedores de servidores de juegos en el equipo seleccionado.

Ambas páginas incluyen un campo de búsqueda para filtrar las asignaciones de puertos por nombre de contenedor.

### Vea las asignaciones de puertos con AWS CLI
<a name="containers-remote-access-port-mappings-cli"></a>

Utilice el `describe-container-group-port-mappings` comando para recuperar las asignaciones de puertos de un grupo de contenedores en una instancia de flota. Especifique el tipo de grupo de contenedores y una `--compute-name` (para grupos de servidores de juegos) o una `--instance-id` (para grupos por instancia). Si lo desea, incluya el `--container-name` parámetro para filtrar los resultados a un contenedor específico.

**Ejemplo: grupo de contenedores de servidores de juegos**

El siguiente comando recupera las asignaciones de puertos del grupo de contenedores de servidores de juegos en un equipo 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
```

Si se ejecuta correctamente, Amazon GameLift Servers devuelve una respuesta como la siguiente:

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

**Ejemplo: grupo de contenedores por instancia**

El siguiente comando recupera las asignaciones de puertos del grupo de contenedores por instancia en una instancia 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
```

Si se ejecuta correctamente, Amazon GameLift Servers devuelve una respuesta como la siguiente:

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