View a markdown version of this page

Admin-Shell für Stream-Sitzungen - GameLift Amazon-Streams

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.

Admin-Shell für Stream-Sitzungen

Verwenden Sie die CreateStreamSessionAdminShellAPI, um eine Verbindung zur Live-Laufzeitumgebung Ihrer Stream-Sitzung herzustellen. Verwenden Sie die Terminalverbindung, um Anwendungsprobleme zu beheben, indem Sie Protokolle überprüfen, laufende Prozesse überprüfen, die GPU-Auslastung untersuchen und den Status Ihrer Anwendung in Echtzeit debuggen.

Wichtig

Die Admin-Shell gewährt dieselbe Zugriffsebene wie die Anwendungen, die in der Stream-Sitzung ausgeführt werden. Dazu können Benutzereingaben, Bildschirmbilder und Anwendungsdatendateien gehören. Erteilen gameliftstreams:CreateStreamSessionAdminShell Sie Berechtigungen nur vertrauenswürdigen IAM-Identitäten.

Voraussetzungen

Bevor Sie mit der Admin-Shell eine Verbindung zu einer Stream-Sitzung herstellen, installieren Sie das AWS Systems Manager Session Manager-Plug-In für AWS Command Line Interface. Das Plugin ist erforderlich, um Terminalverbindungen zu öffnen. Installationsanweisungen finden Sie unter Installieren des Session Manager-Plug-ins für AWS Command Line Interface.

Das folgende Codebeispiel erfordert jq, einen JSON-Befehlszeilenprozessor, um Werte aus der API-Antwort zu extrahieren.

Die Stream-Sitzung muss einen der folgenden Status haben:ACTIVE,, CONNECTED oder. PENDING_CLIENT_RECONNECTION RECONNECTING

Connect mit dem Session Manager-Plugin für die her AWS Command Line Interface

Verwenden Sie das AWS CLI , um die Zugangsdaten für die Admin-Shell anzufordern, und verwenden Sie dann das Session Manager-Plug-In für AWS Command Line Interface, um die Terminalverbindung herzustellen. Verwenden Sie das folgende Codebeispiel, um eine Verbindung herzustellen. Ersetzen Sie STREAM_GROUP_IDSTREAM_SESSION_ID, und REGION durch Ihre Werte.

AWS Command Line Interface mit Bash-Skript

#!/bin/bash # GameLift Streams session with admin shell script # This script sets up a terminal connection to an Amazon GameLift Streams session # using the AWS Systems Manager Session Manager Plugin # Stream group ARN or ID owning the session STREAM_GROUP_ID="arn:aws:gameliftstreams:us-west-2:123456789012:streamgroup/sg-1AB2C3De4" # Stream session ARN or ID to connect to STREAM_SESSION_ID="arn:aws:gameliftstreams:us-west-2:123456789012:streamsession/sg-1AB2C3De4/44wOYoDXlRbtf" # AWS Region where you created the stream group (primary location) REGION="us-west-2" # Request admin shell access SESSION_ACCESS=$(aws gameliftstreams create-stream-session-admin-shell \ --identifier "${STREAM_GROUP_ID}" \ --stream-session-identifier "${STREAM_SESSION_ID}" \ --region "${REGION}" \ --output json) # Extract session ID and connect using Session Manager plugin SESSION_ID=$(echo "$SESSION_ACCESS" | jq -r .SessionId) # Connect using the API response (the plugin extracts StreamUrl and TokenValue) # The connection URL expires 60 seconds after the API response. session-manager-plugin \ "$SESSION_ACCESS" \ "${REGION}" \ "StartSession" \ "" \ "{\"Target\":\"$SESSION_ID\"}" \ "https://ssm.${REGION}.api.aws"
Tipp

Um aktive Stream-Sitzungen für eine Stream-Gruppe zu finden, verwenden Sie die ListStreamSessionsAPI-Operation oder schauen Sie in der Amazon GameLift Streams-Konsole nach.

Wenn Sie Probleme beim Herstellen einer Terminalverbindung haben, finden Sie Lösungen Probleme mit der Administrator-Shell für Stream-Sitzungen für häufig auftretende Fehler.

Probleme mit der Administrator-Shell für Stream-Sitzungen

In diesem Abschnitt werden mögliche Ursachen und Lösungen für Probleme im Zusammenhang mit der Verwendung der CreateStreamSessionAdminShellAPI zum Öffnen einer sicheren Terminalverbindung zur Live-Laufzeitumgebung Ihrer Stream-Sitzung beschrieben.

Die Terminalverbindung ist noch nicht verfügbar

Wenn Sie eine StreamSessionAccessNotReadyException (HTTP 409) aufrufen CreateStreamSessionAdminShell und empfangen, kann die Terminalverbindung zur Live-Laufzeitumgebung Ihrer Amazon GameLift Streams-Sitzung noch nicht bereitgestellt werden.

So beheben Sie dieses Problem

  • Warten Sie ein paar Sekunden und versuchen Sie es erneut mit der Anfrage. Die Terminalverbindung ist in der Regel verfügbar, kurz nachdem die Stream-Sitzung den ACTIVE Status erreicht hat.

  • Wenn der Fehler nach wiederholten Versuchen weiterhin besteht, überprüfen Sie, ob sich die Stream-Sitzung immer noch in einem der folgenden Zustände befindet:ACTIVE, CONNECTEDPENDING_CLIENT_RECONNECTION, oder RECONNECTING rufen Sie auf. GetStreamSession

Der Zugriff wurde beim Erstellen einer Admin-Shell verweigert

Wenn Sie anrufen CreateStreamSessionAdminShell und einen Fehler AccessDeniedException (HTTP 403) erhalten, verfügt die aufrufende IAM-Identität nicht über die erforderlichen Berechtigungen. Um dieses Problem zu beheben, stellen Sie sicher, dass die IAM-Identität über die gameliftstreams:CreateStreamSessionAdminShell Berechtigung für die Zielstream-Gruppenressource verfügt.

Es kann keine Verbindung zu einer Stream-Sitzung hergestellt werden, die nicht aktiv ist

Wenn Sie aufrufen CreateStreamSessionAdminShell und einen Fehler ResourceNotFoundException (HTTP 404) oder ValidationException (HTTP 400) erhalten, überprüfen Sie, ob sich die Streamgruppe, die die Stream-Sitzung hostet, im ACTIVE Status befindet und dass sich die Stream-Sitzung in einem der folgenden Zustände befindet: ACTIVECONNECTED,PENDING_CLIENT_RECONNECTION, oderRECONNECTING.

So beheben Sie dieses Problem

  • Überprüfen Sie den Status der Stream-Gruppe, indem Sie anrufen GetStreamGroup.

  • Überprüfen Sie den Status der Stream-Sitzung, indem Sie aufrufen GetStreamSession.

  • Wenn die Sitzung kürzlich gestartet wurde, warten Sie, bis der Sitzungsstatus zu wechselt, ACTIVE bevor Sie eine Terminalverbindung anfordern.

StreamUrl ist abgelaufen

Wenn Sie eine Verbindung zu dem von zurückgegebenen WebSocket Endpunkt herstellen CreateStreamSessionAdminShell und ein Verbindungsfehler angezeigt wird, ist der StreamUrl abgelaufen. Es ist 60 Sekunden lang gültig, nachdem Sie es erhalten haben. Wenn Sie die Verbindung nicht innerhalb dieser Zeit herstellen, läuft die URL ab.

So beheben Sie dieses Problem

  • Rufen Sie CreateStreamSessionAdminShell erneut an, um ein neues StreamUrlSessionId, und zu erhaltenTokenValue.

  • Stellen Sie die Verbindung innerhalb von 60 Sekunden nach Erhalt der Antwort her.

Das Session Manager-Plugin ist nicht installiert

Wenn Sie versuchen, mit den von zurückgegebenen Anmeldeinformationen eine Verbindung herzustellen CreateStreamSessionAdminShell und die Verbindung fehlschlägt und eine Meldung angezeigt wird, dass das Session Manager-Plug-In fehlt, müssen Sie das AWS Systems Manager Session Manager-Plug-In für die AWS CLI installieren.

So beheben Sie dieses Problem

Die Admin-Shell wird unerwartet geschlossen

Wenn Ihre Terminalverbindung während der Verwendung plötzlich unterbrochen wird, wurde sie möglicherweise aus einem der folgenden Gründe geschlossen:

  • Die Terminalverbindung ist auf den Lebenszyklus der Stream-Sitzung beschränkt und endet, wenn die Stream-Sitzung in den Status oder übergeht. TERMINATED ERROR

  • Die Terminalverbindung hat ihre maximale Dauer von 30 Minuten überschritten.

  • Die Terminalverbindung hat ihr Leerlauf-Timeout von 15 Minuten überschritten.

So beheben Sie dieses Problem

  • Vergewissern Sie sich, dass sich die Stream-Sitzung nicht im ERROR Status TERMINATED oder befindet, indem Sie aufrufen GetStreamSession.

  • Wenn die Terminalverbindung aufgrund von Leerlauf oder maximaler Dauer unterbrochen wurde, rufen Sie CreateStreamSessionAdminShell erneut an, um eine neue Terminalverbindung zu öffnen.

  • Wenn die Stream-Sitzung beendet ist, starten Sie eine neue Stream-Sitzung, um eine neue Terminalverbindung zu öffnen.