As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Shell de administração da sessão de streaming
Use a CreateStreamSessionAdminShellAPI para se conectar ao ambiente de execução ao vivo da sua sessão de transmissão. Use a conexão do terminal para solucionar problemas de aplicativos inspecionando registros, verificando processos em execução, examinando a utilização da GPU e depurando o estado do aplicativo em tempo real.
Importante
O shell de administração concede o mesmo nível de acesso que os aplicativos em execução na sessão de streaming, o que pode incluir entradas do usuário, imagens de tela e arquivos de dados do aplicativo. Conceda gameliftstreams:CreateStreamSessionAdminShell permissões somente para identidades confiáveis do IAM.
Pré-requisitos
Antes de se conectar a uma sessão de stream com o shell de administração, instale o plug-in AWS Systems Manager Session Manager para AWS Command Line Interface o. O plug-in é necessário para abrir as conexões do terminal. Para obter instruções de instalação, consulte Instalar o plug-in do Gerenciador de Sessões para AWS Command Line Interface o.
O exemplo de código abaixo exige que o jq
A sessão de streaming deve estar em um dos seguintes status:ACTIVE,, CONNECTEDPENDING_CLIENT_RECONNECTION, ouRECONNECTING.
Conecte-se usando o plug-in Session Manager para o AWS Command Line Interface
Use o AWS CLI para solicitar as credenciais de acesso ao shell de administrador e, em seguida, use o plug-in do Gerenciador de Sessões AWS Command Line Interface para estabelecer a conexão do terminal. Use o exemplo de código a seguir para se conectar. Substitua STREAM_GROUP_IDSTREAM_SESSION_ID,, e REGION por seus valores.
AWS Command Line Interface com 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"
dica
Para encontrar sessões de stream ativas para um grupo de streams, use a operação de ListStreamSessionsAPI ou verifique o console do Amazon GameLift Streams.
Se você tiver problemas para estabelecer uma conexão de terminal, consulte as soluções Problemas do shell do administrador da sessão de streaming para erros comuns.
Problemas do shell do administrador da sessão de streaming
Esta seção identifica possíveis causas e soluções para problemas relacionados ao uso da CreateStreamSessionAdminShellAPI para abrir uma conexão de terminal segura no ambiente de tempo de execução ao vivo da sua sessão de transmissão.
A conexão do terminal ainda não está disponível
Se você ligar CreateStreamSessionAdminShell e receber um StreamSessionAccessNotReadyException (HTTP 409), a conexão do terminal com o ambiente de tempo de execução ao vivo da sua sessão do Amazon GameLift Streams ainda não poderá ser provisionada.
Para resolver esse problema:
-
Aguarde alguns segundos e repita a solicitação. A conexão do terminal normalmente fica disponível logo após a sessão de streaming entrar no
ACTIVEestado. -
Se o erro persistir após repetidas tentativas, verifique se a sessão de streaming ainda está em um dos seguintes estados:
ACTIVE,,CONNECTEDPENDING_CLIENT_RECONNECTION, ouRECONNECTINGligando. GetStreamSession
Acesso negado ao criar um shell de administração
Se você ligar CreateStreamSessionAdminShell e receber um erro AccessDeniedException (HTTP 403), a identidade IAM de chamada não tem as permissões necessárias. Para resolver esse problema, verifique se a identidade do IAM tem gameliftstreams:CreateStreamSessionAdminShell permissão para o recurso do grupo de stream de destino.
Não é possível se conectar a uma sessão de stream que não esteja ativa
Se você ligar CreateStreamSessionAdminShell e receber um erro ResourceNotFoundException (HTTP 404) ou ValidationException (HTTP 400), verifique se o grupo de stream que hospeda a sessão de stream está no ACTIVE estado e se a sessão de stream está em um dos seguintes estados:ACTIVE,, CONNECTEDPENDING_CLIENT_RECONNECTION, ouRECONNECTING.
Para resolver esse problema:
-
Verifique o estado do grupo de stream ligando GetStreamGroup.
-
Verifique o estado da sessão de streaming ligando GetStreamSession.
-
Se a sessão foi iniciada recentemente, aguarde até que o status da sessão mude para
ACTIVEantes de solicitar uma conexão de terminal.
StreamUrl expirou
Se você se conectar ao WebSocket endpoint retornado CreateStreamSessionAdminShell e receber um erro de conexão, isso significa StreamUrl que ele expirou. É válido por 60 segundos após você recebê-lo. Se você não estabelecer a conexão dentro desse período, o URL expirará.
Para resolver esse problema:
-
Ligue
CreateStreamSessionAdminShellnovamente para obter um novoStreamUrlSessionId,TokenValuee. -
Estabeleça a conexão dentro de 60 segundos após receber a resposta.
O plug-in do Session Manager não está instalado
Se você tentar se conectar usando as credenciais retornadas por CreateStreamSessionAdminShell e a conexão falhar com uma mensagem indicando que o plug-in do Session Manager está ausente, você precisará instalar o plug-in do AWS Systems Manager Session Manager para a AWS CLI.
Para resolver esse problema:
-
Instale o plug-in do Gerenciador de Sessões para a AWS CLI. Para obter instruções de instalação, consulte Instalar o plug-in do Session Manager para a AWS CLI no Guia do usuário do AWS Systems Manager.
-
Verifique se o plug-in está instalado executando
session-manager-plugina partir do seu terminal.
O shell do administrador fecha inesperadamente
Se a conexão do terminal se desconectar abruptamente durante o uso, ela pode ter sido fechada por um dos seguintes motivos:
-
A conexão do terminal tem como escopo o ciclo de vida da sessão de stream e termina quando a sessão de stream passa para um estado or.
TERMINATEDERROR -
A conexão do terminal excedeu sua duração máxima de 30 minutos.
-
A conexão do terminal excedeu seu tempo limite de inatividade de 15 minutos.
Para resolver esse problema:
-
Verifique se a sessão de streaming não está em um
ERRORestadoTERMINATEDor ligando para GetStreamSession. -
Se a conexão do terminal expirou devido à inatividade ou à duração máxima, ligue
CreateStreamSessionAdminShellnovamente para abrir uma nova conexão de terminal. -
Se a sessão de stream tiver terminado, inicie uma nova sessão de stream para abrir uma nova conexão de terminal.