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 connettersi 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
GameServerContainerGroupDefinitionArnpassaggio 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. Usa
ContainerRuntimeIdcome ID del contenitore ed esegui il seguente comando:sudo docker exec -it 02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678 sh
Visualizza le mappature delle porte del contenitore
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
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
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" } ] } ] }