

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Shell de administración de sesiones de streaming
<a name="troubleshoot-admin-shell-guide"></a>

Usa la [CreateStreamSessionAdminShell](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_CreateStreamSessionAdminShell.html)API para conectarte al entorno de tiempo de ejecución en directo de tu sesión de transmisión. Usa la conexión de terminal para solucionar los problemas de las aplicaciones inspeccionando los registros, comprobando los procesos en ejecución, examinando el uso de la GPU y depurando el estado de la aplicación en tiempo real.

**importante**  
El shell de administración otorga el mismo nivel de acceso que las aplicaciones que se ejecutan en la sesión de transmisión, lo que puede incluir entradas del usuario, imágenes de pantalla y archivos de datos de la aplicación. Conceda `gameliftstreams:CreateStreamSessionAdminShell` permisos únicamente a identidades de IAM de confianza.

## Requisitos previos
<a name="troubleshoot-admin-shell-prerequisites"></a>

Antes de conectarse a una sesión de streaming con el shell de administración, instale el complemento AWS Systems Manager Session Manager para AWS Command Line Interface. El complemento es necesario para abrir las conexiones de los terminales. Para obtener instrucciones de instalación, consulte [Instalación del complemento Session Manager para AWS Command Line Interface](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html).

El siguiente ejemplo de código requiere que [jq](https://jqlang.github.io/jq/), un procesador JSON de línea de comandos, extraiga valores de la respuesta de la API.

La sesión de transmisión debe estar en uno de los siguientes estados:`ACTIVE`,, `CONNECTED` o. `PENDING_CLIENT_RECONNECTION` `RECONNECTING`

## Conéctese mediante el complemento Session Manager para AWS Command Line Interface
<a name="troubleshoot-admin-shell-connect"></a>

 AWS CLI Utilícelo para solicitar las credenciales de acceso del shell de administración y, a continuación, utilice [el complemento Session Manager AWS Command Line Interface para](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) establecer la conexión del terminal. Usa el siguiente ejemplo de código para conectarte. Sustituya `STREAM_GROUP_ID``STREAM_SESSION_ID`, y `REGION` por sus valores.

**AWS Command Line Interface con el 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"
```

**sugerencia**  
Para encontrar las sesiones de transmisión activas de un grupo de transmisiones, utilice la operación de [ListStreamSessions](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_ListStreamSessions.html)API o consulte la consola de Amazon GameLift Streams.

Si tiene problemas para establecer una conexión de terminal, consulte [Problemas con el shell de administración de la sesión de streaming](#troubleshoot-admin-shell) las soluciones a los errores más comunes.

## Problemas con el shell de administración de la sesión de streaming
<a name="troubleshoot-admin-shell"></a>

En esta sección, se identifican las posibles causas y soluciones de los problemas relacionados con el uso de la [CreateStreamSessionAdminShell](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_CreateStreamSessionAdminShell.html)API para abrir una conexión de terminal segura en el entorno de tiempo de ejecución en directo de la sesión de streaming.

### La conexión de terminal aún no está disponible
<a name="troubleshoot-admin-shell-not-ready"></a>

Si llama `CreateStreamSessionAdminShell` y recibe un `StreamSessionAccessNotReadyException` (HTTP 409), aún no se puede aprovisionar la conexión de terminal al entorno de ejecución en vivo de su sesión de Amazon GameLift Streams.

Para resolver este problema, siga estos pasos:
+ Espere unos segundos y vuelva a intentar la solicitud. La conexión del terminal suele estar disponible poco después de que la sesión de transmisión entre en `ACTIVE` estado.
+ Si el error persiste tras varios intentos, compruebe que la sesión de transmisión sigue en uno de los siguientes estados:`ACTIVE`,`CONNECTED`,`PENDING_CLIENT_RECONNECTION`, o `RECONNECTING` llamando [GetStreamSession](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html).

### Acceso denegado al crear un shell de administración
<a name="troubleshoot-admin-shell-access-denied"></a>

Si llamas `CreateStreamSessionAdminShell` y recibes un error `AccessDeniedException` (HTTP 403), la identidad de IAM que realiza la llamada no tiene los permisos necesarios. Para resolver este problema, compruebe que la identidad de IAM tenga el `gameliftstreams:CreateStreamSessionAdminShell` permiso para el recurso del grupo de flujo de destino.

### No se puede conectar a una sesión de streaming que no esté activa
<a name="troubleshoot-admin-shell-not-active"></a>

Si llamas `CreateStreamSessionAdminShell` y recibes un error `ResourceNotFoundException` (HTTP 404) o `ValidationException` (HTTP 400), comprueba que el grupo de transmisiones que aloja la sesión de transmisión esté en `ACTIVE` estado y que la sesión de transmisión se encuentre en uno de los siguientes estados: `ACTIVE``CONNECTED`,`PENDING_CLIENT_RECONNECTION`, o`RECONNECTING`.

Para resolver este problema, siga estos pasos:
+ Comprueba el estado del grupo de transmisiones mediante una llamada [GetStreamGroup](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamGroup.html).
+ Verifique el estado de la sesión de transmisión mediante una llamada [GetStreamSession](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html).
+ Si la sesión se inició recientemente, espere hasta que el estado de la sesión cambie `ACTIVE` antes de solicitar una conexión de terminal.

### StreamUrl ha caducado
<a name="troubleshoot-admin-shell-url-expired"></a>

Si se conecta al WebSocket punto final devuelto por `CreateStreamSessionAdminShell` y recibe un error de conexión, este `StreamUrl` ha caducado. Es válido durante 60 segundos después de recibirlo. Si no establece la conexión dentro de ese tiempo, la URL caducará.

Para resolver este problema, siga estos pasos:
+ `CreateStreamSessionAdminShell`Vuelva a llamar para obtener una nueva `StreamUrl``SessionId`, y`TokenValue`.
+ Establezca la conexión dentro de los 60 segundos posteriores a la recepción de la respuesta.

### El complemento Session Manager no está instalado
<a name="troubleshoot-admin-shell-plugin-missing"></a>

Si intenta conectarse con las credenciales devueltas por `CreateStreamSessionAdminShell` y la conexión falla y aparece un mensaje que indica que falta el complemento Session Manager, debe instalar el complemento AWS Systems Manager Session Manager para la AWS CLI.

Para resolver este problema, siga estos pasos:
+ Instale el complemento Session Manager para la AWS CLI. Para obtener instrucciones de instalación, consulte [Instalación del complemento Session Manager para la AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) en la *Guía del usuario de AWS Systems Manager*.
+ Compruebe que el complemento esté instalado `session-manager-plugin` ejecutándolo desde su terminal.

### El shell de administración se cierra inesperadamente
<a name="troubleshoot-admin-shell-closes"></a>

Si la conexión del terminal se desconecta bruscamente durante el uso, es posible que se haya cerrado por alguna de las siguientes razones:
+ La conexión del terminal se limita al ciclo de vida de la sesión de transmisión y finaliza cuando la sesión de transmisión pasa a un `TERMINATED` estado o. `ERROR`
+ La conexión del terminal ha superado su duración máxima de 30 minutos.
+ La conexión del terminal ha superado el tiempo de espera de inactividad de 15 minutos.

Para resolver este problema, siga estos pasos:
+ Comprueba que la sesión de transmisión no esté en `ERROR` estado `TERMINATED` o llamando [GetStreamSession](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html).
+ Si se agotó el tiempo de espera de la conexión del terminal debido a la inactividad o a la duración máxima, `CreateStreamSessionAdminShell` vuelva a llamar para abrir una nueva conexión de terminal.
+ Si la sesión de transmisión ha finalizado, inicie una nueva sesión de transmisión para abrir una nueva conexión de terminal.