

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.

# Configuraciones del ciclo de vida con JupyterLab
<a name="jl-lcc"></a>

Las configuraciones del ciclo de vida son scripts de shell que se activan por eventos JupyterLab del ciclo de vida, como iniciar un nuevo JupyterLab bloc de notas. Puede usar las configuraciones del ciclo de vida para automatizar la personalización de su JupyterLab entorno. Esta personalización incluye la instalación de paquetes personalizados, la configuración de extensiones de cuadernos, la precarga de conjuntos de datos y la configuración de repositorios de código fuente.

El uso de configuraciones del ciclo de vida le brinda flexibilidad y control para configurarlas de manera que se adapten JupyterLab a sus necesidades específicas. Por ejemplo, puede crear un conjunto mínimo de imágenes de contenedor base con los paquetes y las bibliotecas más utilizados. A continuación, puede utilizar las configuraciones de ciclo de vida para instalar paquetes adicionales para casos de uso específicos en los equipos de ciencia de datos y machine learning.

**nota**  
Cada script tiene un límite de **16 384 caracteres**.

**Topics**
+ [Creación de una configuración de ciclo de vida](jl-lcc-create.md)
+ [Depuración de configuraciones del ciclo de vida](jl-lcc-debug.md)
+ [Desasociación de configuraciones de ciclo de vida](jl-lcc-delete.md)

# Creación de una configuración de ciclo de vida
<a name="jl-lcc-create"></a>

En este tema se incluyen instrucciones para crear y asociar una configuración de ciclo de vida a JupyterLab. Utilice el AWS Command Line Interface (AWS CLI) o el Consola de administración de AWS para automatizar la personalización de su JupyterLab entorno.

Las configuraciones del ciclo de vida son scripts de shell activados por eventos JupyterLab del ciclo de vida, como iniciar un nuevo JupyterLab bloc de notas. Para obtener más información acerca de las configuraciones del ciclo de vida, consulte [Configuraciones del ciclo de vida con JupyterLab](jl-lcc.md).

## Creación de una configuración de ciclo de vida (AWS CLI)
<a name="jl-lcc-create-cli"></a>

Aprenda a crear una configuración de ciclo de vida con AWS Command Line Interface (AWS CLI) para automatizar la personalización de su entorno de Studio.

### Requisitos previos
<a name="jl-lcc-create-cli-prerequisites"></a>

Antes de comenzar, complete los siguientes requisitos previos: 
+  AWS CLI Actualízala siguiendo los pasos que se indican en [Instalación de la AWS CLI versión actual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ En el equipo local, ejecute `aws configure` y proporcione sus credenciales de AWS . Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Incorporado al dominio Amazon SageMaker AI. Para obtener información conceptual, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md). Para obtener una guía de inicio rápido, consulte [Utilice la configuración rápida para Amazon SageMaker AI](onboard-quick-start.md).

### Paso 1: creación de una configuración del ciclo de vida
<a name="jl-lcc-create-cli-step1"></a>

En el siguiente procedimiento se muestra cómo crear un script de configuración del ciclo de vida que presente el mensaje `Hello World`.

**nota**  
Cada script puede tener hasta **16 384 caracteres**.

1. En su equipo local, cree un archivo con el nombre `my-script.sh` que contenga lo siguiente:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Utilice lo siguiente para convertir su archivo `my-script.sh` al formato base64. Este requisito evita errores debidos a la codificación del espaciado y los saltos de línea.

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. Cree una configuración del ciclo de vida para usar en Studio. Con el siguiente comando se crea una configuración de ciclo de vida que se ejecuta al inicializar una aplicación de `JupyterLab` asociada:

   ```
   aws sagemaker create-studio-lifecycle-config \
   --region region \
   --studio-lifecycle-config-name my-jl-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type JupyterLab
   ```

   Tenga en cuenta el ARN de la configuración del ciclo de vida recién creada que se devuelve. Este ARN es necesario para asociar la configuración del ciclo de vida a la aplicación.

### Paso 2: Adjunte la configuración del ciclo de vida a su dominio (dominio) y perfil de usuario de Amazon SageMaker AI
<a name="jl-lcc-create-cli-step2"></a>

Para asociar la configuración de ciclo de vida, debe actualizar la `UserSettings` de su dominio o perfil de usuario. Todos los usuarios heredan los scripts de configuración del ciclo de vida que estén asociados a nivel de dominio. Sin embargo, los scripts que están asociados en el nivel de perfil de usuario están dirigidos a un usuario específico. 

Para crear un perfil de usuario, un dominio o un espacio con la configuración de ciclo de vida asociada, utilice los siguientes comandos:
+ [create-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-user-profile.html)
+ [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html)
+ [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html)

Con el siguiente comando, se crea un perfil de usuario con una configuración de ciclo de vida. Agregue el ARN de configuración de ciclo de vida del paso anterior a la `JupyterLabAppSettings` del usuario. Puede agregar varias configuraciones de ciclo de vida al mismo tiempo pasando una lista de ellas. Cuando un usuario lanza una JupyterLab aplicación con el AWS CLI, puede especificar una configuración de ciclo de vida en lugar de utilizar la configuración predeterminada. La configuración del ciclo de vida que pase el usuario debe pertenecer a la lista de configuraciones del ciclo de vida incluida en la `JupyterLabAppSettings`.

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

## Creación de una configuración de ciclo de vida (consola)
<a name="jl-lcc-create-console"></a>

Aprenda a crear una configuración de ciclo de vida mediante la Consola de administración de AWS para automatizar la personalización de su entorno de Studio.

### Paso 1: creación de una configuración del ciclo de vida
<a name="jl-lcc-create-console-step1"></a>

Use el siguiente procedimiento para crear un script de configuración de ciclo de vida que presenta el mensaje `Hello World`.

**Para crear una configuración del ciclo de vida, realice el siguiente procedimiento:**

1. Abre la consola Amazon SageMaker AI en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación izquierdo, seleccione **Configuraciones de administración**.

1. En **Configuraciones de administración**, seleccione **Configuraciones de ciclo de vida**. 

1. Elija la pestaña **JupyterLab**.

1. Seleccione **Crear configuración**.

1. En **Nombre**, especifique el nombre de la configuración de ciclo de vida.

1. En el cuadro de texto que aparece debajo de **Scripts**, especifique la siguiente configuración de ciclo de vida:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Seleccione **Crear configuración**.

### Paso 2: Adjunte la configuración del ciclo de vida a su dominio (dominio) y perfil de usuario de Amazon SageMaker AI
<a name="jl-lcc-create-console-step2"></a>

Todos los usuarios heredan los scripts de configuración del ciclo de vida asociados en el nivel de dominio. Sin embargo, los scripts que están asociados en el nivel de perfil de usuario están dirigidos a un usuario específico.

Puede adjuntar varias configuraciones de ciclo de vida a un dominio o perfil de usuario para JupyterLab.

Use el procedimiento siguiente para asociar una configuración de ciclo de vida a un dominio.

**Asociación de una configuración de ciclo de vida a un dominio**

1. Abre la consola Amazon SageMaker AI en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación izquierdo, seleccione **Configuraciones de administración**.

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la lista de dominios, seleccione el dominio al que quiera asociar la configuración de ciclo de vida.

1. En **Detalles del dominio**, elija la pestaña **Entorno**.

1. En **Configuraciones de ciclo de vida para aplicaciones de Studio personales**, elija **Asociar**.

1. En **Fuente**, seleccione **Configuración existente**.

1. En **Configuraciones del ciclo de vida de Studio**, seleccione la configuración del ciclo de vida que ha creado en el paso anterior.

1. Seleccione **Asociar al dominio**.

Use el procedimiento siguiente para asociar una configuración de ciclo de vida a un perfil de usuario.

**Asociación de una configuración de ciclo de vida un perfil de usuario**

1. Abre la consola Amazon SageMaker AI en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación izquierdo, seleccione **Configuraciones de administración**.

1. En **Configuraciones de administración**, elija **Dominios**. 

1. En la lista de dominios, seleccione el dominio que contenga el perfil de usuario al que desee asociar la configuración de ciclo de vida.

1. En **Perfiles de usuario**, seleccione el perfil de usuario.

1. En la página **Detalles del usuario**, elija **Editar**.

1. En el menú de navegación izquierdo, seleccione **Configuración de Studio**.

1. En **Configuraciones del ciclo de vida asociadas al usuario**, seleccione **Asociar**.

1. En **Fuente**, seleccione **Configuración existente**.

1. En **Configuraciones del ciclo de vida de Studio**, seleccione la configuración del ciclo de vida que ha creado en el paso anterior.

1. Seleccione **Adjuntar a perfil de usuario**.

# Depuración de configuraciones del ciclo de vida
<a name="jl-lcc-debug"></a>

En los siguientes temas se muestra cómo obtener información y depurar las configuraciones del ciclo de vida.

**Topics**
+ [Verifique el proceso de configuración del ciclo de vida desde CloudWatch los registros](#jl-lcc-debug-logs)
+ [Tiempo de espera de configuración del ciclo de vida](#jl-lcc-debug-timeout)

## Verifique el proceso de configuración del ciclo de vida desde CloudWatch los registros
<a name="jl-lcc-debug-logs"></a>

Las configuraciones del ciclo de vida solo registran `STDOUT` y `STDERR`.

`STDOUT` es el resultado predeterminado para los scripts bash. Se puede escribir en `STDERR` añadiendo `>&2` al final de un comando bash. Por ejemplo, `echo 'hello'>&2`. 

Los registros de las configuraciones de tu ciclo de vida se publican en Amazon CloudWatch. Cuenta de AWS Estos registros se encuentran en el flujo de `/aws/sagemaker/studio` registros de la CloudWatch consola.

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Seleccione **Registros** en el panel de navegación izquierdo. En el menú desplegable, seleccione **Grupos de registros**.

1. En la página **Grupos de registros**, busque `aws/sagemaker/studio`. 

1. Seleccione el grupo de registro.

1. En la página de **Detalles del grupo de registro**, seleccione la pestaña **Flujos de registro**.

1. Para buscar los registros de un espacio específico, busque en los flujos de registro utilizando el siguiente formato:

   ```
   domain-id/space-name/app-type/default/LifecycleConfigOnStart
   ```

   Por ejemplo, para buscar los registros de configuración del ciclo de vida del ID de dominio `d-m85lcu8vbqmz`, nombre del espacio `i-sonic-js` y tipo de aplicación `JupyterLab`, utilice la siguiente cadena de búsqueda:

   ```
   d-m85lcu8vbqmz/i-sonic-js/JupyterLab/default/LifecycleConfigOnStart
   ```

## Tiempo de espera de configuración del ciclo de vida
<a name="jl-lcc-debug-timeout"></a>

Existe una limitación de tiempo de espera de configuración del ciclo de vida de 5 minutos. Si un script de configuración de ciclo de vida tarda más de 5 minutos en ejecutarse, se obtiene un error.

Para resolver este error, asegúrese de que el script de configuración de ciclo de vida se complete en menos de 5 minutos. 

Para ayudar a reducir el tiempo de ejecución de los scripts, pruebe lo siguiente:
+ Reduzca los pasos innecesarios. Por ejemplo, limite los entornos de conda donde se instalarán paquetes de gran tamaño.
+ Ejecute tareas en procesos paralelos.
+ Utilice el comando nohup en el script para asegurarse de que se omitan las señales de bloqueo para que el script se ejecute sin detenerse.

# Desasociación de configuraciones de ciclo de vida
<a name="jl-lcc-delete"></a>

Para actualizar el script, debe crear un nuevo script de configuración del ciclo de vida y adjuntarlo al dominio (dominio), perfil de usuario o espacio compartido de Amazon SageMaker AI correspondiente. Un script de configuración del ciclo de vida no se puede cambiar después de crearlo. Para obtener más información acerca de la creación y asociación de un configuración de ciclo de vida, consulte [Creación de una configuración de ciclo de vida](jl-lcc-create.md).

En el siguiente tema se muestra cómo desasociar una configuración de ciclo de vida mediante la AWS Command Line Interface (AWS CLI).

## Desconéctelo mediante el AWS CLI
<a name="jl-lcc-delete-cli"></a>

Para desasociar una configuración de ciclo de vida mediante la AWS CLI, elimine la configuración de ciclo de vida deseada de la lista de configuraciones de ciclo de vida asociadas al recurso: A continuación, pase la lista como parte del comando correspondiente:
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

Por ejemplo, el siguiente comando elimina todas las configuraciones del ciclo de vida de la JupyterLab aplicación que está adjunta al dominio.

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```