View a markdown version of this page

Interface d'administration de session de streaming - Amazon GameLift Streams

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, un processeur JSON en ligne de commande, pour extraire les valeurs de la réponse de l'API.

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, ou RECONNECTING en 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 ACTIVE avant 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 à CreateStreamSessionAdminShell nouveau 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-plugin depuis 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 à ERROR l'état TERMINATED ou.

  • 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 état TERMINATED ou 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 à CreateStreamSessionAdminShell nouveau 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.