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
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
Prima di iniziare:
Connect all'istanza fleet. Per istruzioni, consulta Connect a flotte di istanze.
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 -itcontainer-short-idsh
Connect a un container tramite la console
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.
-
Nella Amazon GameLift Servers console, scegli Contenitori gestiti dal pannello di navigazione, quindi Fleets.
-
Scegli l'ID della flotta che contiene il container o la sessione di gioco a cui desideri accedere.
-
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.
-
Scegli Connetti. Copia il comando visualizzato per connetterti al contenitore, quindi scegli nuovamente Connetti.
-
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.
-
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
Per connetterti al contenitore del server di gioco che ospita una sessione di gioco specifica, segui questi passaggi.
-
Ottieni il nome del computer. Chiama describe-game-sessionsper ricevere il programma
ComputeNameper 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-5555bbbb66ccRisposta
{ "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
ComputeNamevalore della risposta (ad esempio,62c5ff7f7a9a445d84877074c80aeafc). -
Ottieni l'accesso al calcolo e gli attributi del contenitore. Chiama get-compute-accesscon l'ID della flotta e il nome del calcolo.
La risposta include i seguenti campi:
ContainerIdentifiers— LaContainerNameeContainerRuntimeIdper ogni contenitore.GameServerContainerGroupDefinitionArn— L'ARN della definizione del gruppo di contenitori.Credentials— Credenziali temporanee per la connessione all'istanza.
Richiesta
aws gamelift get-compute-access \ --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --compute-name 62c5ff7f7a9a445d84877074c80aeafcRisposta
{ "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" } -
Collegati all'istanza. Utilizza le credenziali del passaggio 2 per connetterti all'istanza della flotta. Per istruzioni dettagliate, vedi Connect a flotte di istanze.
-
Trova il nome del contenitore del server di gioco. Chiama describe-container-group-definitionutilizzando il
GameServerContainerGroupDefinitionArnmetodo del 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/MyGameServerGroupRisposta
{ "ContainerGroupDefinition": { "ContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2:123456789012:containergroupdefinition/MyGameServerGroup:3", "Name": "MyGameServerGroup", "ContainerGroupType": "GAME_SERVER", "GameServerContainerDefinition": { "ContainerName": "game-server", . . . }, . . . } }Nota il
GameServerContainerDefinition.ContainerNamevalore (ad esempio,game-server). -
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
ContainerIdentifiersvoce corrispondente nellaget-compute-accessrisposta del passaggio 2. Annotare il valoreContainerRuntimeId. -
Connect al container. Utilizzate il
ContainerRuntimeIdcome ID del contenitore ed eseguite il seguente comando:sudo docker exec -it 02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678 sh