

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Connect ai container
<a name="containers-remote-access"></a>

Per le flotte di Amazon GameLift Servers container, puoi accedere ai container dei server di gioco in esecuzione su un'istanza della flotta. Usa l'accesso ai container per risolvere i problemi delle sessioni di gioco, controllare i log ed eseguire il debug dei problemi di runtime.

## Connect a un container
<a name="containers-remote-access-connect"></a>

**Prima di iniziare:**  
Connect all'istanza fleet. Per istruzioni, consulta [Connect a flotte di istanze](fleets-remote-access.md).

Esegui il comando seguente per elencare i contenitori in esecuzione sull'istanza:

```
sudo docker ps
```

L'output elenca tutti i contenitori in esecuzione sull'istanza, inclusi i contenitori del server di gioco e Amazon GameLift Servers i contenitori interni. Cerca contenitori con l'immagine del tuo server di gioco per identificare i contenitori del server di gioco.

**Output di esempio:**

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

Per connetterti a un contenitore del server di gioco, usa l'ID breve del contenitore nella `CONTAINER ID` colonna. Questo ti dà l'accesso completo in lettura e scrittura al filesystem del contenitore.

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

## Connect a un container tramite la console
<a name="containers-remote-access-console"></a>

Puoi connetterti ai contenitori dei server di gioco dalla Amazon GameLift Servers console utilizzando Amazon EC2 Systems Manager (SSM). Questo metodo fornisce un accesso sicuro senza richiedere configurazioni o gestione delle credenziali aggiuntive. Puoi connetterti a un container dalla scheda **Computer** o dalla scheda **Sessioni di gioco** nella pagina dei dettagli della flotta.

1. Nella Amazon GameLift Servers console, scegli **Contenitori gestiti** dal pannello di navigazione, quindi **Fleets**.

1. Scegli l'ID della flotta che contiene il container o la sessione di gioco a cui desideri accedere.

1. Nella pagina dei dettagli della flotta, scegli una delle seguenti schede:
   + **Calcola**: elenca i container in circolazione nella flotta. Seleziona il contenitore a cui desideri connetterti.
   + **Sessioni di gioco**: elenca le sessioni di gioco per la flotta. Seleziona la sessione di gioco per connetterti al contenitore che la ospita.

1. Scegli **Connetti**. Copia il comando visualizzato per connetterti al contenitore, quindi scegli nuovamente **Connetti**.

1. Nella finestra di dialogo di connessione, scegli **Esegui** per creare una nuova sessione SSM. Il sistema autentica la sessione tramite AWS Key Management Service (AWS KMS) e apre un terminale nel browser.

1. Dopo esserti connesso all'istanza, incolla il comando docker dal passaggio 4 ed eseguilo sull'istanza per accedere al contenitore.

## Connect al container che ospita una sessione di gioco
<a name="containers-remote-access-game-session"></a>

Per connetterti al contenitore del server di gioco che ospita una sessione di gioco specifica, segui questi passaggi.

1. **Ottieni il nome del computer.** Chiama [describe-game-sessions](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-game-sessions.html)per ricevere il programma `ComputeName` per la sessione di gioco.

   **Richiesta**

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

   **Risposta**

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

   Annota il `ComputeName` valore della risposta (ad esempio,`62c5ff7f7a9a445d84877074c80aeafc`).

1. **Ottieni l'accesso al calcolo e gli attributi del contenitore.** Chiama [get-compute-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-compute-access.html)con l'ID della flotta e il nome del calcolo.

   La risposta include i seguenti campi:
   + `ContainerIdentifiers`— La `ContainerName` e `ContainerRuntimeId` per ogni contenitore.
   + `GameServerContainerGroupDefinitionArn`— L'ARN della definizione del gruppo di contenitori.
   + `Credentials`— Credenziali temporanee per connettersi all'istanza.

   **Richiesta**

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

   **Risposta**

   ```
   {
     "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. **Collegati all'istanza.** Utilizza le credenziali del passaggio 2 per connetterti all'istanza della flotta. Per istruzioni dettagliate, vedi [Connect a flotte di istanze](fleets-remote-access.md).

1. **Trova il nome del contenitore del server di gioco.** Chiama [describe-container-group-definition](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-container-group-definition.html)utilizzando il `GameServerContainerGroupDefinitionArn` passaggio 2 per identificare il nome del contenitore del server di gioco.

   **Richiesta**

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

   **Risposta**

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

   Nota il `GameServerContainerDefinition.ContainerName` valore (ad esempio,`game-server`).

1. **Identifica l'ID di runtime del contenitore del server di gioco.** Utilizzando il nome del contenitore del server di gioco del passaggio precedente, trova la `ContainerIdentifiers` voce corrispondente nella `get-compute-access` risposta del passaggio 2. Annotare il valore `ContainerRuntimeId`.

1. **Connect al container.** Usa `ContainerRuntimeId` come ID del contenitore ed esegui il seguente comando:

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

## Visualizza le mappature delle porte del contenitore
<a name="containers-remote-access-port-mappings"></a>

Le mappature delle porte mostrano come le porte dei container vengono mappate alle porte di connessione delle istanze della flotta. A ogni porta container che accetta traffico in entrata viene assegnata una porta di connessione sull'istanza. Puoi controllare le mappature delle porte per scoprire quali porte di connessione sono mappate alle porte del container o per risolvere i problemi di connessione. Puoi visualizzare le mappature delle porte nella Amazon GameLift Servers console o utilizzare l'SDK o. AWS CLI AWS 

### Visualizza le mappature delle porte nella console
<a name="containers-remote-access-port-mappings-console"></a>

**Nella Amazon GameLift Servers console, scegli **Contenitori gestiti** dal pannello di navigazione, quindi Flotte.** Scegli una flotta per aprire la pagina dei dettagli della flotta. Puoi visualizzare le mappature dei porti nelle seguenti posizioni:
+ **Pagina dei dettagli dell'istanza**: mostra le mappature delle porte per il gruppo di contenitori per istanza sull'istanza selezionata.
+ **Pagina dei dettagli di calcolo**: mostra le mappature delle porte per il gruppo di contenitori del server di gioco sul computer selezionato.

Entrambe le pagine includono un campo di ricerca per filtrare le mappature delle porte in base al nome del contenitore.

### Visualizza le mappature delle porte con il AWS CLI
<a name="containers-remote-access-port-mappings-cli"></a>

Utilizzate il `describe-container-group-port-mappings` comando per recuperare le mappature delle porte per un gruppo di container su un'istanza della flotta. Specificate il tipo di gruppo di contenitori e un `--compute-name` (per i gruppi di server di gioco) o un `--instance-id` (per i gruppi di istanze). Facoltativamente, includi il `--container-name` parametro per filtrare i risultati in un contenitore specifico.

**Esempio: gruppo di contenitori del server di gioco**

Il comando seguente recupera le mappature delle porte per il gruppo di contenitori del server di gioco su un computer specifico.

```
aws gamelift describe-container-group-port-mappings \
    --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
    --container-group-type GAME_SERVER \
    --compute-name 62c5ff7f7a9a445d84877074c80aeafc
```

In caso di successo, Amazon GameLift Servers restituisce una risposta come la seguente:

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

**Esempio: gruppo di contenitori per istanza**

Il comando seguente recupera le mappature delle porte per il gruppo di contenitori per istanza su un'istanza specifica.

```
aws gamelift describe-container-group-port-mappings \
    --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
    --container-group-type PER_INSTANCE \
    --instance-id i-1234567890abcdef0
```

In caso di successo, Amazon GameLift Servers restituisce una risposta simile alla seguente:

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