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à.
Shell di amministrazione della sessione di streaming
Usa l'CreateStreamSessionAdminShellAPI per connetterti all'ambiente di runtime live della tua sessione di streaming. Utilizza la connessione terminale per risolvere i problemi delle applicazioni ispezionando i log, controllando i processi in esecuzione, esaminando l'utilizzo della GPU ed eseguendo il debug dello stato dell'applicazione in tempo reale.
Importante
La shell di amministrazione garantisce lo stesso livello di accesso delle applicazioni in esecuzione nella sessione di streaming, che può includere input dell'utente, immagini dello schermo e file di dati dell'applicazione. Concedi gameliftstreams:CreateStreamSessionAdminShell le autorizzazioni solo a identità IAM affidabili.
Prerequisiti
Prima di connetterti a una sessione di streaming con la shell di amministrazione, installa il plug-in AWS Systems Manager Session Manager per AWS Command Line Interface. Il plugin è necessario per aprire le connessioni terminali. Per le istruzioni di installazione, consulta Installare il plug-in Session Manager per AWS Command Line Interface.
L'esempio di codice riportato di seguito richiede jq
La sessione di streaming deve essere in uno dei seguenti stati:ACTIVE,, o. CONNECTED PENDING_CLIENT_RECONNECTION RECONNECTING
Connect utilizzando il plugin Session Manager per AWS Command Line Interface
Utilizzate il AWS CLI per richiedere le credenziali di accesso alla shell di amministrazione, quindi utilizzate il plugin Session Manager per AWS Command Line Interface stabilire la connessione al terminale. Usa il seguente esempio di codice per connetterti. Sostituisci STREAM_GROUP_ID e REGION con i tuoi valori. STREAM_SESSION_ID
AWS Command Line Interface con lo script Bash
#!/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"
Suggerimento
Per trovare sessioni di streaming attive per un gruppo di stream, utilizza l'operazione ListStreamSessionsAPI o controlla la console Amazon GameLift Streams.
Se hai problemi a stabilire una connessione terminale, consulta le soluzioni Problemi relativi alla shell di amministrazione della sessione di streaming agli errori più comuni.
Problemi relativi alla shell di amministrazione della sessione di streaming
Questa sezione identifica le potenziali cause e soluzioni ai problemi relativi all'utilizzo dell'CreateStreamSessionAdminShellAPI per aprire una connessione terminale sicura nell'ambiente di runtime live della sessione di streaming.
La connessione al terminale non è ancora disponibile
Se chiami CreateStreamSessionAdminShell e ricevi un StreamSessionAccessNotReadyException (HTTP 409), non è ancora possibile effettuare il provisioning della connessione terminale all'ambiente di runtime live della sessione Amazon GameLift Streams.
Per risolvere il problema:
-
Attendi qualche secondo e riprova la richiesta. La connessione terminale in genere diventa disponibile poco dopo l'entrata
ACTIVEdello stato della sessione di streaming. -
Se l'errore persiste dopo ripetuti tentativi, verifica che la sessione di streaming sia ancora in uno dei seguenti stati:
ACTIVE,CONNECTEDPENDING_CLIENT_RECONNECTION, oRECONNECTINGchiamando. GetStreamSession
Accesso negato durante la creazione di una shell di amministrazione
Se chiami CreateStreamSessionAdminShell e ricevi un errore AccessDeniedException (HTTP 403), l'identità IAM chiamante non dispone delle autorizzazioni richieste. Per risolvere questo problema, verifica che l'identità IAM disponga dell'gameliftstreams:CreateStreamSessionAdminShellautorizzazione per la risorsa del gruppo di stream di destinazione.
Impossibile connettersi a una sessione di streaming non attiva
Se chiami CreateStreamSessionAdminShell e ricevi un errore ResourceNotFoundException (HTTP 404) o ValidationException (HTTP 400), verifica che il gruppo di stream che ospita la sessione di streaming sia in ACTIVE stato e che la sessione di streaming si trovi in uno dei seguenti stati: ACTIVECONNECTED,PENDING_CLIENT_RECONNECTION, oRECONNECTING.
Per risolvere il problema:
-
Verifica lo stato del gruppo di stream chiamando GetStreamGroup.
-
Verifica lo stato della sessione di streaming chiamando GetStreamSession.
-
Se la sessione è iniziata di recente, attendi che lo stato della sessione venga ripristinato
ACTIVEprima di richiedere una connessione terminale.
StreamUrl è scaduta
Se ti connetti all' WebSocket endpoint restituito da CreateStreamSessionAdminShell e ricevi un errore di connessione, significa che StreamUrl è scaduto. È valido per 60 secondi dalla ricezione. Se non si stabilisce la connessione entro tale periodo, l'URL scade.
Per risolvere il problema:
-
Chiama di
CreateStreamSessionAdminShellnuovo per ottenere un nuovoStreamUrlSessionId, eTokenValue. -
Stabilire la connessione entro 60 secondi dalla ricezione della risposta.
Il plugin Session Manager non è installato
Se si tenta di connettersi utilizzando le credenziali restituite da CreateStreamSessionAdminShell e la connessione non riesce con un messaggio che indica che il plug-in Session Manager è mancante, è necessario installare il plug-in AWS Systems Manager Session Manager per la AWS CLI.
Per risolvere il problema:
-
Installa il plug-in Session Manager per la AWS CLI. Per istruzioni di installazione, vedere Installazione del plug-in Session Manager per la AWS CLI nella Guida per l'utente di AWS Systems Manager.
-
Verifica che il plugin sia installato eseguendolo
session-manager-plugindal tuo terminale.
La shell di amministrazione si chiude in modo imprevisto
Se la connessione del terminale si disconnette bruscamente durante l'uso, potrebbe essersi chiusa per uno dei seguenti motivi:
-
La connessione terminale è limitata al ciclo di vita della sessione di streaming e termina quando la sessione di streaming passa a uno stato or.
TERMINATEDERROR -
La connessione al terminale ha superato la durata massima di 30 minuti.
-
La connessione al terminale ha superato il timeout di inattività di 15 minuti.
Per risolvere il problema:
-
Verifica che la sessione di streaming non sia in
ERRORstatoTERMINATEDor chiamando. GetStreamSession -
Se la connessione al terminale è scaduta a causa dell'inattività o della durata massima, chiama
CreateStreamSessionAdminShellnuovamente per aprire una nuova connessione terminale. -
Se la sessione di streaming è terminata, avvia una nuova sessione di streaming per aprire una nuova connessione terminale.