Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Connect zu Containern herstellen
Bei Amazon GameLift Servers Container-Flotten kannst du auf Gameserver-Container zugreifen, die auf einer Flotteninstanz laufen. Verwenden Sie den Container-Zugriff, um Spielsitzungen zu beheben, Protokolle zu überprüfen und Laufzeitprobleme zu debuggen.
Stellen Sie eine Connect zu einem Container her
Bevor Sie beginnen:
Connect zur Flotteninstanz her. Detaillierte Anweisungen finden Sie unter Connect zu Flotteninstanzen herstellen.
Führen Sie den folgenden Befehl aus, um die auf der Instance laufenden Container aufzulisten:
sudo docker ps
In der Ausgabe werden alle Container aufgeführt, die auf der Instance ausgeführt werden, einschließlich Spieleserver-Container und interner Amazon GameLift Servers Container. Suchen Sie nach Containern mit Ihrem Gameserver-Image, um die Gameserver-Container zu identifizieren.
Beispielausgabe:
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
Um eine Verbindung zu einem Spieleserver-Container herzustellen, verwende die kurze Container-ID aus der CONTAINER ID Spalte. Dadurch erhältst du vollen Lese- und Schreibzugriff auf das Container-Dateisystem.
sudo docker exec -itcontainer-short-idsh
Stellen Sie über die Konsole eine Connect zu einem Container her
Mit Amazon EC2 Systems Manager (SSM) können Sie von der Amazon GameLift Servers Konsole aus eine Verbindung zu Spieleserver-Containern herstellen. Diese Methode bietet sicheren Zugriff, ohne dass eine zusätzliche Einrichtung oder Verwaltung der Anmeldeinformationen erforderlich ist. Sie können entweder über die Registerkarte „Computer“ oder die Registerkarte „Spielsitzungen“ auf der Seite mit den Flottendetails eine Verbindung zu einem Container herstellen.
-
Wählen Sie in der Amazon GameLift Servers Konsole im Navigationsbereich Verwaltete Container und dann Flotten aus.
-
Wählen Sie die Flotten-ID aus, die den Container oder die Spielsitzung enthält, auf die Sie zugreifen möchten.
-
Wähle auf der Seite mit den Flottendetails einen der folgenden Tabs:
Berechnet — Listet die Container auf, die auf der Flotte laufen. Wählen Sie den Container aus, zu dem Sie eine Verbindung herstellen möchten.
Spielsitzungen — Listet die Spielsitzungen für die Flotte auf. Wählen Sie die Spielsitzung aus, um eine Verbindung zu dem Container herzustellen, der sie hostet.
-
Wählen Sie Connect aus. Kopieren Sie den angezeigten Befehl, um Connect dem Container herzustellen, und wählen Sie dann erneut Verbinden.
-
Wählen Sie im Verbindungsdialogfeld die Option Ausführen aus, um eine neue SSM-Sitzung zu erstellen. Das System authentifiziert Ihre Sitzung über den AWS Key Management Service (AWS KMS) und öffnet ein Terminal in Ihrem Browser.
-
Sobald Sie eine Verbindung mit der Instance hergestellt haben, fügen Sie den Docker-Befehl aus Schritt 4 ein und führen Sie ihn auf der Instance aus, um auf den Container zuzugreifen.
Connect zum Container her, der eine Spielsitzung hostet
Gehen Sie wie folgt vor, um eine Verbindung zum Gameserver-Container herzustellen, der eine bestimmte Spielsitzung hostet.
-
Ermitteln Sie den Computernamen. Rufen Sie describe-game-sessionsan, um das
ComputeNamefür die Spielsitzung zu erhalten.Anforderung
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-5555bbbb66ccAntwort
{ "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", . . . } ] }Notieren Sie sich den
ComputeNameWert aus der Antwort (z. B.62c5ff7f7a9a445d84877074c80aeafc). -
Rufen Sie Rechenzugriff und Containerattribute ab. Rufen Sie get-compute-accessmit der Flotten-ID und dem Compute-Namen an.
Die Antwort umfasst die folgenden Felder:
ContainerIdentifiers— DasContainerNameundContainerRuntimeIdfür jeden Container.GameServerContainerGroupDefinitionArn— Der ARN der Container-Gruppendefinition.Credentials— Temporäre Anmeldeinformationen für die Verbindung mit der Instance.
Anforderung
aws gamelift get-compute-access \ --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --compute-name 62c5ff7f7a9a445d84877074c80aeafcAntwort
{ "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" } -
Stellen Sie eine Verbindung zur Instance her. Verwenden Sie die Anmeldeinformationen aus Schritt 2, um eine Verbindung zur Flotteninstanz herzustellen. Detaillierte Anweisungen finden Sie unter Connect zu Flotteninstanzen herstellen.
-
Suchen Sie den Namen des Spielserver-Containers. Rufen Sie describe-container-group-definitionmit dem
GameServerContainerGroupDefinitionArnaus Schritt 2 stammenden Code auf, um den Namen des Gameserver-Containers zu identifizieren.Anforderung
aws gamelift describe-container-group-definition \ --name arn:aws:gamelift:us-west-2::containergroupdefinition/MyGameServerGroupAntwort
{ "ContainerGroupDefinition": { "ContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2:123456789012:containergroupdefinition/MyGameServerGroup:3", "Name": "MyGameServerGroup", "ContainerGroupType": "GAME_SERVER", "GameServerContainerDefinition": { "ContainerName": "game-server", . . . }, . . . } }Notieren Sie sich den
GameServerContainerDefinition.ContainerNameWert (zum Beispielgame-server). -
Identifizieren Sie die Laufzeit-ID des Spielserver-Containers. Suchen Sie anhand des Namens des Spieleserver-Containers aus dem vorherigen Schritt
ContainerIdentifiersnach dem passenden Eintrag in derget-compute-accessAntwort aus Schritt 2. Notieren Sie sich denContainerRuntimeId-Wert. -
Connect zum Container her. Verwenden Sie die
ContainerRuntimeIdals Container-ID und führen Sie den folgenden Befehl aus:sudo docker exec -it 02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678 sh