View a markdown version of this page

Shell de administração da sessão de streaming - Amazon GameLift Streams

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, um processador JSON de linha de comando, extraia valores da resposta da API.

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 ACTIVE estado.

  • 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, ou RECONNECTING ligando. 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 ACTIVE antes 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 CreateStreamSessionAdminShell novamente para obter um novo StreamUrlSessionId, TokenValue e.

  • 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-plugin a 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. TERMINATED ERROR

  • 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 ERROR estado TERMINATED or ligando para GetStreamSession.

  • Se a conexão do terminal expirou devido à inatividade ou à duração máxima, ligue CreateStreamSessionAdminShell novamente 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.