

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.

# Usa scripts de sesión para gestionar la experiencia de streaming de tus usuarios de Amazon WorkSpaces Applications
<a name="use-session-scripts"></a>

WorkSpaces Las aplicaciones proporcionan scripts de sesión en la instancia. Puede utilizar estas secuencias de comandos para ejecutar sus propias secuencias de comandos personalizados cuando se produzcan eventos específicos en las sesiones de transmisión. Por ejemplo, puede usar scripts personalizados para preparar el entorno de WorkSpaces aplicaciones antes de que comiencen las sesiones de streaming de los usuarios. También puede usar secuencias de comandos personalizados para limpiar las instancias de transmisión después de que los usuarios hayan finalizado las sesiones de transmisión. 

Los scripts de sesión se especifican dentro de una imagen de WorkSpaces aplicaciones. Estos scripts se ejecutan en el contexto del usuario o del sistema. Si los scripts de sesión utilizan la salida estándar para escribir los mensajes de información, error o depuración, estos se pueden guardar, si lo desea, en un bucket de Amazon S3 de su cuenta de Amazon Web Services.

**Topics**
+ [

# Ejecución de scripts antes de que empiecen las sesiones de streaming
](run-scripts-before-streaming-sessions-begin.md)
+ [

# Ejecución de scripts después de finalizar las sesiones de streaming
](run-scripts-after-streaming-sessions-end.md)
+ [

# Creación y especificación de scripts de sesión
](create-specify-session-scripts.md)
+ [

# Archivo de configuración de scripts de sesión
](session-script-configuration-file.md)
+ [

# Uso de PowerShell archivos de Windows
](using-powershell-files-with-session-scripts.md)
+ [

# Registro de la salida de los scripts de sesión
](logging-session-output.md)
+ [

# Uso de conectores de almacenamiento con scripts de sesión
](use-storage-connectors-with-session-scripts.md)
+ [

# Habilitación del almacenamiento en buckets de Amazon S3 de los registros de los scripts de sesión
](enable-S3-bucket-storage-session-script-logs.md)
+ [

# Uso de scripts de sesión en flotas multisesión
](session-scripts-multi-session-fleets.md)

# Ejecución de scripts antes de que empiecen las sesiones de streaming
<a name="run-scripts-before-streaming-sessions-begin"></a>

Puede configurar los scripts para que se ejecuten durante un máximo de 60 segundos antes de se lancen las aplicaciones de los usuarios y empiecen las sesiones de streaming. Esto le permite personalizar el entorno de las WorkSpaces aplicaciones antes de que los usuarios comiencen a transmitir sus aplicaciones. Cuando se ejecutan scripts de sesión, aparece un rotador de carga a los usuarios. Cuando los scripts finalizan correctamente o transcurre el tiempo de espera máximo, empieza la sesión de streaming de los usuarios. Si los scripts no se completan correctamente, se muestra un mensaje de error para los usuarios. Sin embargo, no se impide a los usuarios que usen la sesión de streaming.

Cuando se especifica un nombre de archivo en una instancia de Windows, debe utilizar una doble barra oblicua inversa. Por ejemplo:

C:\$1\$1Scripts\$1\$1Myscript.bat

Si no utiliza una doble barra oblicua inversa, aparecerá un mensaje de error para informarle de que el archivo .json no tiene el formato correcto.

**nota**  
Cuando los scripts finalizan correctamente, deben devolver un valor de 0. Si los scripts devuelven un valor distinto de 0, WorkSpaces Applications muestra el mensaje de error al usuario. 

Cuando ejecuta los scripts antes de que comiencen las sesiones de streaming y el marco de WorkSpaces aplicaciones dinámicas de aplicaciones no esté habilitado, se produce el siguiente proceso:

![\[WorkSpaces Applications workflow diagram showing connection, application selection, and session launch steps.\]](http://docs.aws.amazon.com/es_es/appstream2/latest/developerguide/images/session-scripts-without-DAF-non-domain-joined2.png)


1. Los usuarios se conectan a una instancia de la flota de WorkSpaces aplicaciones que no está unida a un dominio. Se conectan mediante uno de los siguientes métodos de acceso:
   + WorkSpaces Grupo de usuarios de aplicaciones
   + SAML 2.0
   + WorkSpaces API de aplicaciones

1. El catálogo de aplicaciones se muestra en el portal de WorkSpaces aplicaciones y los usuarios eligen una aplicación para lanzarla.

1. Tiene lugar uno de los siguientes procesos:
   + Si está habilitada la persistencia de la configuración de las aplicaciones para los usuarios, se descarga y monta el archivo VHD (disco duro virtual) de configuración de la aplicación, en el que se almacenan las personalizaciones y los ajustes de Windows de los usuarios. En este caso se requiere un inicio de sesión de usuario de Windows.

     Para obtener información sobre la persistencia de la configuración de las aplicaciones, consulte [Habilite la persistencia de la configuración de la aplicación para los usuarios de sus WorkSpaces aplicaciones](app-settings-persistence.md).
   + Si la persistencia de la configuración de las aplicaciones no está habilitada, el usuario de Windows ya ha iniciado sesión.

1. Se inician los scripts de sesión. Si el almacenamiento persistente está habilitado para los usuarios, también comienza el montaje del conector de almacenamiento. Para obtener más información acerca del almacenamiento persistente, consulte [Habilite y administre el almacenamiento persistente para los usuarios de sus WorkSpaces aplicaciones](persistent-storage.md).
**nota**  
No es preciso que haya finalizado el montaje del conector de almacenamiento para que se inicie la sesión de streaming. Si los scripts de sesión finalizan antes que el montaje del conector de almacenamiento, se inicia la sesión de streaming.   
Para obtener información acerca de la monitorización del estado del montaje de los conectores de almacenamiento, consulte [Uso de conectores de almacenamiento con scripts de sesión](use-storage-connectors-with-session-scripts.md).

1. Los scripts de sesión finalizan o se agota el tiempo de espera.

1. Se inicia la sesión de streaming de los usuarios. 

1. Se lanza la aplicación que los usuarios han elegido.

Para obtener información sobre el marco de WorkSpaces aplicaciones dinámicas de aplicaciones, consulte[Utilice el marco de WorkSpaces aplicaciones dinámicas para crear un proveedor de aplicaciones dinámicas](build-dynamic-app-provider.md).

Al ejecutar scripts antes de que comiencen las sesiones de streaming y se WorkSpaces active el marco de aplicaciones dinámicas de aplicaciones, se produce el siguiente proceso:

![\[WorkSpaces Applications workflow from user login to application launch, including SAML authentication and session scripts.\]](http://docs.aws.amazon.com/es_es/appstream2/latest/developerguide/images/session-scripts-with-DAF-domain-joined2.png)


1. Los usuarios visitan el portal de aplicaciones SAML 2.0 de su organización y eligen la pila de WorkSpaces aplicaciones.

1. Se conectan a una instancia de la flota de WorkSpaces aplicaciones que está unida a un dominio.

1. Si está habilitada la persistencia de la configuración de las aplicaciones para los usuarios, se descarga y monta el archivo VHD de configuración de la aplicación, en el que se almacenan las personalizaciones y los ajustes de Windows de los usuarios.

1. Se produce el inicio de sesión del usuario de Windows.

1. El catálogo de aplicaciones se muestra en el portal de WorkSpaces aplicaciones y los usuarios eligen una aplicación para lanzarla.

1. Se inician los scripts de sesión. Si el almacenamiento persistente está habilitado para los usuarios, también comienza el montaje del conector de almacenamiento.
**nota**  
No es preciso que haya finalizado el montaje del conector de almacenamiento para que se inicie la sesión de streaming. Si los scripts de sesión finalizan antes que el montaje del conector de almacenamiento, se inicia la sesión de streaming.   
Para obtener información acerca de la monitorización del estado del montaje de los conectores de almacenamiento, consulte [Uso de conectores de almacenamiento con scripts de sesión](use-storage-connectors-with-session-scripts.md).

1. Los scripts de sesión finalizan o se agota el tiempo de espera.

1. Se inicia la sesión de streaming de los usuarios.

1. Se lanza la aplicación que los usuarios han elegido.

# Ejecución de scripts después de finalizar las sesiones de streaming
<a name="run-scripts-after-streaming-sessions-end"></a>

También puede configurar los scripts para que se ejecuten después de que finalicen las sesiones de streaming. Por ejemplo, puede ejecutar un script cuando los usuarios seleccionen **Finalizar sesión** en la barra de herramientas de WorkSpaces aplicaciones o cuando alcancen la duración máxima permitida para la sesión. También puede utilizar estos scripts de sesión para limpiar el entorno de WorkSpaces aplicaciones antes de que finalice una instancia de streaming. Por ejemplo, puede usar scripts para liberar los bloqueos de archivos o cargar los archivos de registro. Cuando se ejecutan scripts después de que finalicen las sesiones de streaming, tiene lugar el siguiente proceso:

![\[Flowchart showing WorkSpaces Applications session termination process with scripts and storage actions.\]](http://docs.aws.amazon.com/es_es/appstream2/latest/developerguide/images/session-scripts-termination.png)


1. Finaliza la sesión de streaming de WorkSpaces las aplicaciones de sus usuarios.

1. Se inician los scripts de finalización de sesión.

1. Los scripts de finalización de sesión finalizan o se agota el tiempo de espera.

1. Se produce el cierre de sesión del usuario de Windows. 

1. En paralelo, se produce uno de los siguientes casos o ambos, si procede:
   + Si está habilitada la persistencia de la configuración de las aplicaciones para los usuarios, se desmonta y se carga a un bucket de Amazon S3 de la cuenta el archivo VHD de configuración de la aplicación, en el que se almacenan las personalizaciones y los ajustes de Windows de los usuarios.
   + Si el almacenamiento persistente está habilitado para los usuarios, el conector de almacenamiento lleva a cabo una sincronización final y se desmonta.

1. La instancia de la flota termina.

# Creación y especificación de scripts de sesión
<a name="create-specify-session-scripts"></a>

Puede configurar y especificar los scripts de sesión para las flotas siempre activas, bajo demanda y de Elastic.

**Para configurar y especificar los scripts de sesión para las flotas siempre activas y bajo demanda**

1. Abra la consola de WorkSpaces aplicaciones en [https://console.aws.amazon.com/appstream2.](https://console.aws.amazon.com/appstream2)

1. En el panel de navegación, elija **Imágenes**, **Image Builder**.

1. Elija un generador de imágenes cuyo estado sea **En ejecución** y seleccione **Conectar**.

1. Cuando se lo pidan, seleccione **Administrador**.

1. Navegue hasta `C:\AppStream\SessionScripts` y abra el archivo de configuración `config.json`.

   Para obtener información acerca de los parámetros de los scripts de sesión, consulte [Archivo de configuración de scripts de sesión](session-script-configuration-file.md).

1. Una vez que haya terminado de realizar cambios, guarde y cierre el archivo `config.json`.

1. En el escritorio del generador de imágenes, abra **Image Assistant**.

1. (Opcional) Puede especificar cualquier otra aplicación que quiera incluir en la imagen.

1. Siga los pasos necesarios en Image Assistant para terminar de crear la imagen.

   Si la configuración de scripts de sesión no se puede validar (por ejemplo, porque el archivo .json no tiene el formato correcto), se le notificará cuando elija **Desconectar y crear imagen**. 
**nota**  
Para localizar el archivo de configuración de los scripts de sesión en generadores de imágenes basados en Linux, vaya a `/opt/appstream/SessionScripts/config.json`.

**Para configurar y especificar los scripts de sesión para las flotas de Elastic**

1. Cree un archivo zip con los scripts de sesión y el archivo config.json. Los archivos de scripts se copiarán en las siguientes ubicaciones. Debe usar estas ubicaciones para su config.json. 
   + Para Windows, use `C:\AppStream\SessionScripts\SessionScript`.
   + Para Linux, use `/opt/appstream/SessionScripts/SessionScript`.
**nota**  
Para ejecutar los archivos de scripts de sesión, asegúrese de que el archivo.zip solo contenga los scripts y archivos `config.json` de la sesión y no la carpeta que los contiene. Para obtener más información, consulte [Archivo de configuración de scripts de sesión](session-script-configuration-file.md).

1. Cargue el archivo zip en un bucket de Amazon S3 de su cuenta.
**nota**  
Su VPC debe proporcionar acceso al bucket de Amazon S3. Para obtener más información, consulte [Uso de puntos de enlace de VPC de Amazon S3 para las características de las aplicaciones WorkSpaces](managing-network-vpce-iam-policy.md).  
Debe tener el bucket de S3 y la flota de WorkSpaces aplicaciones en la misma unidad. Región de AWS  
Debe tener permisos de IAM para realizar la acción `S3:GetObject` en el objeto del script de la sesión en el bucket de Amazon S3. Para obtener más información sobre cómo almacenar los scripts de sesión en un bucket de Amazon S3, consulte [Guardar el icono de la aplicación, el script de configuración, el script de sesión y el VHD en un bucket de S3](store-s3-bucket.md).

1. Abra la consola de WorkSpaces aplicaciones en [https://console.aws.amazon.com/appstream2.](https://console.aws.amazon.com/appstream2)

1. En el panel de navegación, seleccione **Flotas**.

1. Elija la flota de Elastic que quiera actualizar y, a continuación, seleccione **Ver detalles**.

1. En la pestaña **Configuración de scripts de sesión**, elija **Editar**.

1. Para **Objeto de script de sesión en S3**, especifique el URI de S3 que representa el objeto de script de sesión o elija **Explorar S3** para ir a los buckets de S3 y buscar el objeto de script de sesión.

1. Cuando termine de realizar los cambios, seleccione **Guardar cambios**.

1. En este momento, los scripts de sesión están disponibles para todas las instancias de flota lanzadas.
**nota**  
También puede configurar los scripts de sesión al crear una nueva flota de Elastic. 

# Archivo de configuración de scripts de sesión
<a name="session-script-configuration-file"></a>

Para localizar el archivo de configuración de los scripts de sesión en una instancia de Windows, vaya a C:\$1\$1AppStream\$1 SessionScripts config.json. En una instancia de Linux, navegue hasta/opt/appstream/SessionScripts/config.json. El archivo tiene el formato siguiente.

**nota**  
El archivo de configuración tiene formato .json. Compruebe que cualquier texto que escriba en este archivo esté en formato .json válido.

```
{
  "SessionStart": {
    "executables": [
      {
        "context": "system",
        "filename": "",
        "arguments": "",
        "s3LogEnabled": true
      },
      {
        "context": "user",
        "filename": "",
        "arguments": "",
        "s3LogEnabled": true
      }
    ],
    "waitingTime": 30
  },
  "SessionTermination": {
    "executables": [
      {
        "context": "system",
        "filename": "",
        "arguments": "",
        "s3LogEnabled": true
      },
      {
        "context": "user",
        "filename": "",
        "arguments": "",
        "s3LogEnabled": true
      }
    ],
    "waitingTime": 30
  }
}
```

Puede utilizar los siguientes parámetros en el archivo de configuración de scripts de sesión.

***SessionStart/SessionTermination ***  
Los scripts de sesión que se ejecutarán en el evento de sesión apropiado basados en el nombre del objeto.   
**Tipo**: cadena  
**Obligatorio**: no  
**Valores permitidos:** **SessionStart**, **SessionTermination**

***WaitingTime***  
La duración máxima de los scripts de sesión, en segundos.  
**Tipo**: entero  
**Obligatorio**: no  
**Restricciones:** la duración máxima es de 60 segundos. Si los scripts de sesión no han finalizado antes de cumplirse este plazo, se detendrán. Si necesita un script para continuar con la ejecución, láncelo como un proceso independiente.

***Executables***  
Los detalles para ejecutar los scripts de sesión.  
**Tipo:** cadena  
**Obligatorio**: sí  
**Restricciones:** el número máximo de scripts que se pueden ejecutar por evento de sesión es de 2 (uno para el contexto del usuario y otro para el contexto del sistema).

***Context***  
El contexto en el que se ejecutará el script de sesión.   
**Tipo:** cadena  
**Obligatorio**: sí  
**Valores permitidos:** **user**, **system**

***Filename***  
La ruta completa del script de sesión que se ejecutará. Si no se especifica este parámetro, el script de sesión no se ejecuta.   
**Tipo:** cadena  
**Obligatorio**: no  
**Restricciones:** la longitud máxima del nombre de archivo y su ruta completa es de 1000 caracteres.  
**Valores permitidos:** **.bat**, **.exe** y **.sh**  
También puedes usar PowerShell archivos de Windows. Para obtener más información, consulte [Uso de PowerShell archivos de Windows](using-powershell-files-with-session-scripts.md).

***Arguments***  
Los argumentos del script de sesión o del archivo ejecutable.  
**Tipo:** cadena  
**Obligatorio**: no  
**Limitaciones de longitud:** la longitud máxima de 1000 caracteres.

***S3LogEnabled***  
Cuando el valor de este parámetro se establece en **True**, se crea un bucket de S3 dentro de la cuenta de Amazon Web Services para almacenar los registros creados por el script de sesión. De forma predeterminada, este valor se establece en **True**. Para obtener más información, consulte la sección *Registro de la salida de los scripts de sesión* más adelante en este tema.   
**Tipo**: Booleano  
**Obligatorio**: no  
**Valores permitidos:** **True**, **False**

# Uso de PowerShell archivos de Windows
<a name="using-powershell-files-with-session-scripts"></a>

Para usar PowerShell archivos de Windows, especifique la ruta completa al PowerShell archivo en el **filename** parámetro:

```
"filename": 
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
```

A continuación, especifique el script de sesión en el parámetro **arguments**:

```
"arguments": "-File \"C:\\path\\to\\session\\script.ps1\"",
```

Por último, compruebe que la política de PowerShell ejecución permita que el PowerShell archivo se ejecute.

# Registro de la salida de los scripts de sesión
<a name="logging-session-output"></a>

Cuando esta opción está habilitada en el archivo de configuración, WorkSpaces Applications captura automáticamente el resultado del script de sesión que se escribe en la salida estándar. Esta salida se carga en un bucket de Amazon S3 de la cuenta. Puede revisar los archivos de registro con fines de solución de problemas o depuración. 

**nota**  
Los archivos de registro se cargan cuando el script de sesión devuelve un valor o cuando transcurre el tiempo establecido en **WaitingTime**, lo que ocurra primero.

# Uso de conectores de almacenamiento con scripts de sesión
<a name="use-storage-connectors-with-session-scripts"></a>

Cuando los conectores de almacenamiento de WorkSpaces aplicaciones están habilitados, comienzan a montarse cuando se ejecutan los scripts de inicio de sesión. Si el script se basa en el montaje de los conectores de almacenamiento, puede esperar a que estén disponibles. WorkSpaces Las aplicaciones mantienen el estado de montaje de los conectores de almacenamiento del registro de Windows en las instancias de Windows, en la clave siguiente:

<provided user name>HKEY\$1LOCAL\$1MACHINE\$1 SOFTWARE\$1 Amazon\$1\$1 Storage\$1\$1 AppStream <Storage connector>

Los valores de la clave del registro son los siguientes:
+ Nombre de usuario proporcionado: el ID de usuario proporcionado a través del modo de acceso. Los modos de acceso y el valor de cada uno de ellos son los siguientes:
  + Grupo de usuarios: la dirección de correo electrónico del usuario
  + URL de streaming: el valor de UserID
  + SAML: el valor de NameID Si el nombre de usuario incluye una barra (por ejemplo, el SAMAccount nombre de un usuario de dominio), la barra se sustituye por un carácter «-».
+ Conector de almacenamiento: el conector de la opción de almacenamiento persistente que se ha habilitado para el usuario. Los valores del conector de almacenamiento son los siguientes:
  + HomeFolder
  + GoogleDrive
  + OneDrive

Cada clave de registro del conector de almacenamiento contiene un valor **MountStatus**DWORD. En la siguiente tabla se enumeran los valores posibles de **MountStatus**.

**nota**  
Para ver estas claves del Registro, debe tener Microsoft .NET Framework versión 4.7.2 o posterior instalado en la imagen.


| Valor | Description (Descripción) | 
| --- | --- | 
| 0 |  El conector de almacenamiento no se ha habilitado para este usuario  | 
| 1 |  El montaje del conector de almacenamiento está en curso  | 
| 2 |  El conector de almacenamiento se ha montado correctamente  | 
| 3 |  Se ha producido un error al montar el conector de almacenamiento  | 
| 4 |  El montaje del conector de almacenamiento está habilitado, pero aún no está montado  | 

En las instancias de Linux, puede comprobar el estado de montaje de la carpeta principal consultando el valor de appstream\$1home\$1folder\$1mount\$1status en el archivo \$1/. config/appstream-home-folder/appstream-. home-folder-mount-status


| Valor | Description (Descripción) | 
| --- | --- | 
| True |  La carpeta principal se ha montado correctamente  | 
| False | La carpeta principal aún no está montada | 

# Habilitación del almacenamiento en buckets de Amazon S3 de los registros de los scripts de sesión
<a name="enable-S3-bucket-storage-session-script-logs"></a>

Cuando habilita el registro de Amazon S3 en la configuración del script de sesión, WorkSpaces Applications captura el resultado estándar del script de sesión. La salida se carga periódicamente en un bucket de S3 de la cuenta de Amazon Web Services. Para cada AWS región, WorkSpaces Applications crea un segmento en su cuenta que es exclusivo para su cuenta y la región.

No es necesario realizar ninguna tarea de configuración para administrar estos buckets de S3. El servicio de WorkSpaces Aplicaciones las gestiona en su totalidad. Los archivos de registro que se almacenan en cada bucket se cifran en tránsito mediante puntos de enlace SSL de Amazon S3 y en reposo, mediante claves de cifrado administradas por Amazon S3. Los nombres de los buckets siguen el formato específico que se indica a continuación:

```
appstream-logs-region-code-account-id-without-hyphens-random-identifier
```

***region-code***  
Este es el código de AWS región en el que se crea la pila con el almacenamiento en cubos de Amazon S3 habilitado para los registros de scripts de sesión.

***account-id-without-hyphens***  
Su identificador de cuenta de Amazon Web Services. El ID aleatorio garantiza que no haya ningún conflicto con otros buckets en esa región. La primera parte del nombre del bucket, `appstream-logs`, no cambia entre cuentas o regiones.

Por ejemplo, si especifica los scripts de sesión en una imagen de la región EE.UU. Oeste (Oregón) (us-west-2) con el número de cuenta 123456789012, WorkSpaces Applications crea un bucket de Amazon S3 en su cuenta de esa región con el nombre que se muestra. Este bucket solo lo puede eliminar un administrador con permisos suficientes.

```
appstream-logs-us-west-2-1234567890123-abcdefg
```

Al desactivar scripts de sesión no se eliminan los archivos de registro almacenados en el bucket de S3. Para eliminar permanentemente los archivos de registro, usted u otro administrador con los permisos adecuados deben hacerlo mediante la consola o la API de Amazon S3. WorkSpaces Applications añade una política de bucket que evita la eliminación accidental del bucket. Para obtener más información, consulte la sección *Políticas de IAM y el bucket de Amazon S3 para la persistencia de la configuración de aplicaciones* en [Identity and Access Management para WorkSpaces aplicaciones de Amazon](controlling-access.md).

Cuando se habilitan los scripts de sesión, se crea una carpeta única para cada sesión de streaming que se inicia. 

 La ruta de la carpeta donde se almacenan los archivos de registro en el bucket de S3 en la cuenta utiliza la siguiente estructura:

```
bucket-name/stack-name/fleet-name/access-mode/user-id-SHA-256-hash/session-id/SessionScriptsLogs/session-event
```

***bucket-name***  
El nombre del bucket de S3 en el que se almacenan los scripts de sesión. El formato del nombre se describe anteriormente en esta sección.

***stack-name***  
El nombre de la pila de la que procede la sesión.

***fleet-name***  
El nombre de la flota en la que se ejecuta el script de sesión.

***access-mode***  
El método de identidad del usuario: `custom` para la API o CLI de WorkSpaces aplicaciones, `federated` para SAML y `userpool` para los usuarios del grupo de usuarios.

***user-id-SHA-256-hash***  
El nombre de carpeta específico del usuario. Este nombre se ha creado utilizando una cadena hexadecimal con hasta SHA-256 en minúsculas generada a partir del identificador de usuario.

***session-id***  
El identificador de la sesión de streaming del usuario. Cada sesión de streaming del usuario genera un identificador único.

***session-event***  
El evento que generó el registro de script de sesión. Los valores del evento son: `SessionStart` y `SessionTermination`.

La siguiente estructura de carpetas de ejemplo se aplica a una sesión de streaming que se inicia desde la pila de prueba y la flota de prueba. La sesión utiliza la API del ID de usuario`testuser@mydomain.com`, a partir de un Cuenta de AWS ID de `123456789012` y el grupo `test-stack` de configuración de la región EE.UU. Oeste (Oregón) (us-west-2):

```
appstream-logs-us-west-2-1234567890123-abcdefg/test-stack/test-fleet/custom/a0bcb1da11f480d9b5b3e90f91243143eac04cfccfbdc777e740fab628a1cd13/05yd1391-4805-3da6-f498-76f5x6746016/SessionScriptsLogs/SessionStart/
```

Esta estructura de carpetas de ejemplo contiene un archivo de registro para un script de inicio de sesión del contexto del usuario y un archivo de registro para un script de inicio de sesión del contexto del sistema, si procede.

# Uso de scripts de sesión en flotas multisesión
<a name="session-scripts-multi-session-fleets"></a>

Al utilizar scripts de sesión en flotas multisesión, existen requisitos y consideraciones adicionales para garantizar un rendimiento y una seguridad óptimos.

## Requisitos
<a name="session-scripts-multi-session-fleets-requirements"></a>

En una flota de sesión única, en un caso concreto, se garantiza que los **SessionTermination**ganchos **SessionStart**y se ejecutarán solo una vez. Esto se debe a que hay una asignación 1:1 de sesiones a instancias. Cuando se utilizan flotas multisesión, existe un mapeo N:M de las sesiones a las instancias, en el que cada sesión ejecuta su propio enlace. **SessionStart**SessionTermination**** Esto significa que los **SessionTermination**enlaces **SessionStart**y se pueden ejecutar muchas veces en una instancia determinada y en muchos órdenes diferentes. Para disfrutar de una experiencia óptima, deberían cumplirse las siguientes condiciones para los scripts de sesión si se utilizan en flotas multisesión:
+ Los scripts son idempotentes.

  Cuando ya se ha realizado una acción, los scripts deben tratar más de una ejecución en la misma instancia con un manejo correcto.
+ Los scripts son independientes.

  Como los scripts se ejecutan por sesión, si una sesión se ejecuta **SessionTermination**mientras se ejecuta otra **SessionStart**, no deberían interferir entre sí ni con la experiencia de otras sesiones.
+ Los scripts son eficaces.

  En las instancias multisesión, se pueden aprovisionar varias sesiones simultáneamente. Esto significa que puede haber varias ejecuciones simultáneas de los scripts de sesión. Los scripts deben ser eficientes, no consumir recursos excesivos y no afectar a la experiencia de otros usuarios en la instancia ni a la estabilidad de las sesiones.

Muchos de estos requisitos se pueden cumplir manteniendo la lógica del script de sesión centrada en la sesión de usuario específica en la que se ejecuta el script. 

## Consideraciones de seguridad
<a name="session-scripts-multi-session-fleets-security"></a>

WorkSpaces Las imágenes de las aplicaciones no deben configurarse para permitir a ningún usuario permiso de escritura en los archivos de secuencias de comandos de la sesión. Esto introduce un vector de ataque crítico para los usuarios malintencionados, pues se les permite modificar los archivos de script. Estos archivos podrían ejecutarse entonces como SYSTEM o como otro usuario, dependiendo de la configuración.

**importante**  
Es su responsabilidad asegurarse de que las imágenes de sus WorkSpaces aplicaciones estén configuradas de forma segura. Esto es especialmente importante en el caso de las instancias multisesión en las que varios usuarios utilizan la misma instancia. Si las imágenes no se configuran de forma segura, todos los usuarios de esa instancia corren un riesgo de seguridad.

Los archivos de imágenes y scripts de sesión deben cumplir las condiciones siguientes:
+ Los usuarios no tienen permiso para modificar los archivos de script de sesión.
+ Los usuarios no tienen permiso para modificar el script de sesión config.json. El comportamiento predeterminado de la imagen restringe el acceso a los administradores.

Los archivos ejecutables de script de sesión deben almacenarse en un lugar seguro donde no se puedan modificar durante el tiempo de ejecución.

Si el servicio detecta que se ha modificado un archivo ejecutable de script de sesión, no ejecutará posteriormente ese enlace en esa instancia, cargará los archivos de registro en Amazon S3 (si el registro en Amazon S3 está habilitado) y se verá el siguiente mensaje:

**El script de sesión no se ejecutó porque el archivo ejecutable se modificó después de aprovisionarse la instancia. Se ha omitido la ejecución por motivos de seguridad.**

Si su caso de uso requiere modificar el archivo ejecutable del script de sesión en el tiempo de ejecución (por ejemplo, si selecciona un archivo EXE modificado mediante un proceso de actualización automática en el tiempo de ejecución), no superará las comprobaciones anteriores. En este caso, utilice un script para redirigir la ejecución al archivo ejecutable modificado. Deje el script sin modificar en el tiempo de ejecución cuando el servicio realice el control de seguridad.

Si los archivos de script de sesión son excesivamente grandes (más de 100 MB), esto puede ocasionar retrasos en el aprovisionamiento de instancias y sesiones, y el control de seguridad tardará más tiempo (dependiendo del tipo de instancia y de los recursos disponibles). Si su caso de uso requiere scripts de sesión de gran tamaño, considere la posibilidad de utilizar scripts más pequeños para redirigir la ejecución. Esto mejorará las experiencias de aprovisionamiento de instancias y sesiones.

Tenga en cuenta que el servicio solo comprueba el ejecutable definido en los scripts de sesión config.json, y esto es solo un mecanismo de fallback/best esfuerzo. Es su responsabilidad asegurarse de que todas las rutas de código de los archivos ejecutables de scripts de sesión sean seguras y que los usuarios finales no puedan modificarlas.