Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Interface d'administration de session de streaming
Utilisez l'CreateStreamSessionAdminShellAPI pour vous connecter à l'environnement d'exécution en direct de votre session de streaming. Utilisez la connexion au terminal pour résoudre les problèmes liés aux applications en inspectant les journaux, en vérifiant les processus en cours, en examinant l'utilisation du GPU et en déboguant l'état de votre application en temps réel.
Important
Le shell d'administration accorde le même niveau d'accès que les applications exécutées lors de la session de streaming, ce qui peut inclure les entrées utilisateur, les images d'écran et les fichiers de données d'application. Accordez gameliftstreams:CreateStreamSessionAdminShell des autorisations uniquement aux identités IAM fiables.
Conditions préalables
Avant de vous connecter à une session de streaming avec le shell d'administration, installez le plugin AWS Systems Manager Session Manager pour le AWS Command Line Interface. Le plugin est nécessaire pour ouvrir les connexions aux terminaux. Pour les instructions d'installation, voir Installer le plug-in Session Manager pour le AWS Command Line Interface.
L'exemple de code ci-dessous nécessite jq
La session de diffusion doit avoir l'un des statuts suivants :ACTIVE, CONNECTEDPENDING_CLIENT_RECONNECTION, ouRECONNECTING.
Connectez-vous à l'aide du plug-in Session Manager pour AWS Command Line Interface
Utilisez le AWS CLI pour demander les informations d'accès au shell d'administration, puis utilisez le plug-in Session Manager AWS Command Line Interface pour établir la connexion au terminal. Utilisez l'exemple de code suivant pour vous connecter. Remplacez STREAM_GROUP_IDSTREAM_SESSION_ID, et REGION par vos valeurs.
AWS Command Line Interface avec le 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"
Astuce
Pour rechercher des sessions de diffusion actives pour un groupe de flux, utilisez l'opération ListStreamSessionsAPI ou consultez la console Amazon GameLift Streams.
Si vous ne parvenez pas à établir une connexion au terminal, consultez Problèmes du shell d'administration de la session Stream les solutions aux erreurs courantes.
Problèmes du shell d'administration de la session Stream
Cette section identifie les causes potentielles et les solutions aux problèmes liés à l'utilisation de l'CreateStreamSessionAdminShellAPI pour ouvrir une connexion de terminal sécurisée dans l'environnement d'exécution en direct de votre session de diffusion.
La connexion au terminal n'est pas encore disponible
Si vous appelez CreateStreamSessionAdminShell et recevez un StreamSessionAccessNotReadyException (HTTP 409), la connexion du terminal à l'environnement d'exécution en direct de votre session Amazon GameLift Streams ne peut pas encore être configurée.
Pour résoudre ce problème :
-
Patientez quelques secondes et réessayez la demande. La connexion au terminal devient généralement disponible peu de temps après que la session de diffusion soit entrée dans l'
ACTIVEétat. -
Si l'erreur persiste après plusieurs tentatives, vérifiez que la session de diffusion est toujours dans l'un des états suivants :
ACTIVE,CONNECTEDPENDING_CLIENT_RECONNECTION, ouRECONNECTINGen appelant GetStreamSession.
Accès refusé lors de la création d'un shell d'administration
Si vous appelez CreateStreamSessionAdminShell et recevez une erreur AccessDeniedException (HTTP 403), l'identité IAM appelante ne dispose pas des autorisations requises. Pour résoudre ce problème, vérifiez que l'identité IAM est gameliftstreams:CreateStreamSessionAdminShell autorisée à accéder à la ressource du groupe de flux cible.
Impossible de se connecter à une session de streaming qui n'est pas active
Si vous appelez CreateStreamSessionAdminShell et recevez une erreur ResourceNotFoundException (HTTP 404) ou ValidationException (HTTP 400), vérifiez que le groupe de flux hébergeant la session de diffusion est dans ACTIVE l'état et que la session de diffusion est dans l'un des états suivants : ACTIVECONNECTED,PENDING_CLIENT_RECONNECTION, ouRECONNECTING.
Pour résoudre ce problème :
-
Vérifiez l'état du groupe de diffusion en appelant GetStreamGroup.
-
Vérifiez l'état de la session de diffusion en appelant GetStreamSession.
-
Si la session a récemment démarré, attendez que l'état de la session passe à zéro
ACTIVEavant de demander une connexion au terminal.
StreamUrl a expiré
Si vous vous connectez au WebSocket point de terminaison renvoyé par CreateStreamSessionAdminShell et que vous recevez une erreur de connexion, celui-ci StreamUrl a expiré. Il est valide pendant 60 secondes après l'avoir reçu. Si vous n'établissez pas la connexion dans ce délai, l'URL expire.
Pour résoudre ce problème :
-
Appelez à
CreateStreamSessionAdminShellnouveau pour obtenir un nouveauStreamUrl,SessionId, etTokenValue. -
Établissez la connexion dans les 60 secondes suivant la réception de la réponse.
Le plugin Session Manager n'est pas installé
Si vous tentez de vous connecter à l'aide des informations d'identification renvoyées par CreateStreamSessionAdminShell et que la connexion échoue avec un message indiquant que le plug-in Session Manager est manquant, vous devez installer le plug-in AWS Systems Manager Session Manager pour la AWS CLI.
Pour résoudre ce problème :
-
Installez le plug-in Session Manager pour la AWS CLI. Pour les instructions d'installation, voir Installer le plug-in Session Manager pour la AWS CLI dans le Guide de l'utilisateur de AWS Systems Manager.
-
Vérifiez que le plugin est installé en l'exécutant
session-manager-plugindepuis votre terminal.
Le shell d'administration se ferme de façon inattendue
Si la connexion de votre terminal se déconnecte brusquement en cours d'utilisation, il se peut qu'il se soit fermé pour l'une des raisons suivantes :
-
La connexion au terminal est limitée au cycle de vie de la session de diffusion et prend fin lorsque la session de diffusion passe à
ERRORl'étatTERMINATEDou. -
La connexion du terminal a dépassé sa durée maximale de 30 minutes.
-
La connexion du terminal a dépassé son délai d'inactivité de 15 minutes.
Pour résoudre ce problème :
-
Vérifiez que la session de diffusion n'est pas dans un
ERRORétatTERMINATEDou en appelant GetStreamSession. -
Si le délai de connexion du terminal a expiré en raison d'une période d'inactivité ou d'une durée maximale, appelez à
CreateStreamSessionAdminShellnouveau pour ouvrir une nouvelle connexion au terminal. -
Si la session de diffusion est terminée, lancez une nouvelle session de diffusion pour ouvrir une nouvelle connexion au terminal.