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
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
ACTIVEStatus 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, oderRECONNECTINGrufen 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,
ACTIVEbevor 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
CreateStreamSessionAdminShellerneut an, um ein neuesStreamUrlSessionId, 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
-
Installieren Sie das Session Manager-Plug-In für die AWS CLI. Installationsanweisungen finden Sie unter Installieren des Session Manager-Plug-ins für die AWS CLI im AWS Systems Manager Manager-Benutzerhandbuch.
-
Stellen Sie sicher, dass das Plugin installiert ist, indem Sie es
session-manager-pluginvon Ihrem Terminal aus ausführen.
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.
TERMINATEDERROR -
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
ERRORStatusTERMINATEDoder befindet, indem Sie aufrufen GetStreamSession. -
Wenn die Terminalverbindung aufgrund von Leerlauf oder maximaler Dauer unterbrochen wurde, rufen Sie
CreateStreamSessionAdminShellerneut 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.