

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Des configurations de cycle de vie avec JupyterLab
<a name="jl-lcc"></a>

Les configurations du cycle de vie sont des scripts shell déclenchés par des événements JupyterLab du cycle de vie, tels que le démarrage d'un nouveau JupyterLab bloc-notes. Vous pouvez utiliser les configurations du cycle de vie pour automatiser la personnalisation de votre JupyterLab environnement. Cette personnalisation comprend l’installation de packages personnalisés, la configuration d’extensions de bloc-notes, le préchargement de jeux de données et la configuration de référentiels de code source.

L'utilisation de configurations de cycle de vie vous offre la flexibilité et le contrôle JupyterLab nécessaires pour répondre à vos besoins spécifiques. Par exemple, vous pouvez créer un ensemble minimal d’images de conteneur de base avec les packages et les bibliothèques les plus couramment utilisés. Vous pouvez ensuite utiliser les configurations de cycle de vie pour installer des packages supplémentaires pour des cas d’utilisation spécifiques au sein de vos équipes de science des données et de machine learning.

**Note**  
Chaque script a une limite de **16 384 caractères**.

**Topics**
+ [

# Création d’une configuration de cycle de vie
](jl-lcc-create.md)
+ [

# Débogage des configurations de cycle de vie
](jl-lcc-debug.md)
+ [

# Détachement des configurations de cycle de vie
](jl-lcc-delete.md)

# Création d’une configuration de cycle de vie
<a name="jl-lcc-create"></a>

Cette rubrique contient des instructions pour créer et associer une configuration de cycle de vie à JupyterLab. Vous utilisez le AWS Command Line Interface (AWS CLI) ou le AWS Management Console pour automatiser la personnalisation de votre JupyterLab environnement.

Les configurations du cycle de vie sont des scripts shell déclenchés par des événements JupyterLab du cycle de vie, tels que le démarrage d'un nouveau JupyterLab bloc-notes. Pour en savoir plus sur les configurations du cycle de vie, consultez [Des configurations de cycle de vie avec JupyterLab](jl-lcc.md).

## Création d’une configuration de cycle de vie (AWS CLI)
<a name="jl-lcc-create-cli"></a>

Découvrez comment créer une configuration du cycle de vie à l'aide du AWS Command Line Interface (AWS CLI) pour automatiser la personnalisation de votre environnement Studio.

### Conditions préalables
<a name="jl-lcc-create-cli-prerequisites"></a>

Avant de commencer, effectuez les opérations obligatoires suivantes : 
+ Mettez à jour le AWS CLI en suivant les étapes de [la section Installation de la AWS CLI version actuelle](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ À partir de votre ordinateur local, exécutez `aws configure` et fournissez vos informations d’identification AWS . Pour plus d'informations sur les AWS informations d'identification, voir [Comprendre et obtenir vos AWS informations d'identification](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Intégré au domaine Amazon SageMaker AI. Pour obtenir des informations conceptuelles, consultez [Présentation du domaine Amazon SageMaker AI](gs-studio-onboard.md). Pour vous reporter à un guide de démarrage rapide, consultez [Utiliser la configuration rapide pour Amazon SageMaker AI](onboard-quick-start.md).

### Étape 1 : Créer une configuration de cycle de vie
<a name="jl-lcc-create-cli-step1"></a>

La procédure suivante montre comment créer un script de configuration du cycle de vie qui imprime `Hello World`.

**Note**  
Chaque script peut comporter jusqu’à **16 384 caractères**.

1. À partir de votre ordinateur local, créez un fichier nommé `my-script.sh` avec le contenu suivant :

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

1. Utilisez ce qui suit pour convertir votre fichier `my-script.sh` au format base64. Cette exigence évite les erreurs dues à l’encodage des espacements et des sauts de ligne.

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

1. Créez une configuration de cycle de vie à utiliser avec Studio. La commande suivante crée une configuration de cycle de vie qui s’exécute au lancement d’une application `JupyterLab` associée :

   ```
   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
   ```

   Notez l’ARN de la configuration de cycle de vie nouvellement créée qui est renvoyée. Cet ARN est requis pour attacher la configuration du cycle de vie à votre application.

### Étape 2 : associez la configuration du cycle de vie à votre domaine Amazon SageMaker AI (domaine) et à votre profil utilisateur
<a name="jl-lcc-create-cli-step2"></a>

Pour attacher la configuration de cycle de vie, vous devez mettre à jour le paramètre `UserSettings` pour votre domaine ou votre profil utilisateur. Les scripts de configuration du cycle de vie associés au niveau du domaine sont hérités par tous les utilisateurs. Toutefois, les scripts associés au niveau du profil utilisateur sont limités à un utilisateur spécifique. 

Vous pouvez créer un profil utilisateur, un domaine ou un espace nouveau avec une configuration de cycle de vie attachée à l’aide des commandes suivantes :
+ [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)

La commande suivante crée un profil utilisateur avec une configuration de cycle de vie. Ajoutez l’ARN de la configuration de cycle de vie provenant de l’étape précédente au paramètre `JupyterLabAppSettings` de l’utilisateur. Vous pouvez ajouter plusieurs configurations de cycle de vie à la fois en transmettant une liste de telles configurations. Lorsqu'un utilisateur lance une JupyterLab application avec le AWS CLI, il peut spécifier une configuration de cycle de vie au lieu d'utiliser la configuration par défaut. La configuration de cycle de vie transmise par l’utilisateur doit figurer dans la liste des configurations de cycle de vie de `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]
  }
}'
```

## Création d’une configuration de cycle de vie (console)
<a name="jl-lcc-create-console"></a>

Découvrez comment créer une configuration du cycle de vie AWS Management Console à l'aide du pour automatiser la personnalisation de votre environnement Studio.

### Étape 1 : Créer une configuration de cycle de vie
<a name="jl-lcc-create-console-step1"></a>

Utilisez la procédure suivante pour créer un script de configuration de cycle de vie qui affiche `Hello World`.

**Pour créer une configuration de cycle de vie**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le panneau de navigation de gauche, choisissez **Configurations d’administrateur**.

1. Sous **Configurations d’administrateur**, choisissez **Configurations de cycle de vie**. 

1. Cliquez sur l'onglet **JupyterLab**.

1. Choisissez **Créer une configuration**.

1. Pour **Nom**, spécifiez le nom de la configuration de cycle de vie.

1. Dans la zone de texte située sous **Scripts**, spécifiez la configuration de cycle de vie suivante :

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

1. Choisissez **Créer une configuration**.

### Étape 2 : associez la configuration du cycle de vie à votre domaine Amazon SageMaker AI (domaine) et à votre profil utilisateur
<a name="jl-lcc-create-console-step2"></a>

Les scripts de configuration de cycle de vie associés au niveau du domaine sont hérités par tous les utilisateurs. Toutefois, les scripts associés au niveau du profil utilisateur sont limités à un utilisateur spécifique.

Vous pouvez associer plusieurs configurations de cycle de vie à un domaine ou à un profil utilisateur pour JupyterLab.

Utilisez la procédure suivante pour attacher une configuration de cycle de vie à un domaine.

**Pour attacher une configuration de cycle de vie à un domaine**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le panneau de navigation de gauche, choisissez **Configurations d’administrateur**.

1. Sous **Configurations d’administrateur**, choisissez **Domaines**. 

1. Dans la liste des domaines, sélectionnez le domaine auquel attacher la configuration de cycle de vie.

1. Sur la page **Détails du domaine**, cliquez sur l'onglet **Environnement**.

1. Sous **Configurations de cycle de vie pour les applications Studio personnelles**, choisissez **Attacher**.

1. Sous **Source**, choisissez **Existing configuration** (Configuration existante).

1. Sous **Configurations du cycle de vie Studio**, sélectionnez la configuration du cycle de vie créée à l’étape précédente.

1. Sélectionnez **Attach to domain** (Attacher au domaine).

Utilisez la procédure suivante pour attacher une configuration de cycle de vie à un profil utilisateur.

**Pour attacher une configuration de cycle de vie à un profil utilisateur**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dans le panneau de navigation de gauche, choisissez **Configurations d’administrateur**.

1. Sous **Configurations d’administrateur**, choisissez **Domaines**. 

1. Dans la liste des domaines, sélectionnez le domaine qui contient le profil utilisateur auquel attacher la configuration de cycle de vie.

1. Sous **Profils utilisateur**, sélectionnez le profil utilisateur.

1. Sur la page **User Details** (Détails de l’utilisateur), choisissez **Edit** (Modifier).

1. Dans le volet de navigation de gauche, choisissez **Studio**.

1. Sous **Lifecycle configurations attached to user** (Configurations du cycle de vie associées à l'utilisateur), choisissez **Attach** (Attacher).

1. Sous **Source**, choisissez **Existing configuration** (Configuration existante).

1. Sous **Studio lifecycle configurations** (Configurations du cycle de vie Studio), sélectionnez la configuration du cycle de vie créée à l'étape précédente.

1. Choisissez **Attach to user profile** (Attacher au profil utilisateur).

# Débogage des configurations de cycle de vie
<a name="jl-lcc-debug"></a>

Les rubriques suivantes montrent comment obtenir des informations sur vos configurations de cycle de vie et comment les déboguer.

**Topics**
+ [

## Vérifiez le processus de configuration du cycle de vie à partir CloudWatch des journaux
](#jl-lcc-debug-logs)
+ [

## Expiration de la configuration de cycle de vie
](#jl-lcc-debug-timeout)

## Vérifiez le processus de configuration du cycle de vie à partir CloudWatch des journaux
<a name="jl-lcc-debug-logs"></a>

Les configurations de cycle de vie ne journalisent que `STDOUT` et `STDERR`.

`STDOUT` est la sortie par défaut pour les scripts bash. Vous pouvez écrire dans `STDERR` ajoutant `>&2` à la fin d'une commande bash. Par exemple, `echo 'hello'>&2`. 

Les journaux de vos configurations de cycle de vie vous sont publiés Compte AWS via Amazon CloudWatch. Ces journaux se trouvent dans le flux de `/aws/sagemaker/studio` journaux de la CloudWatch console.

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Choisissez **Journaux** dans le volet de navigation de gauche. Dans le menu déroulant, sélectionnez **Groupes de journaux**.

1. Sur la page **Groupes de journaux**, recherchez `aws/sagemaker/studio`. 

1. Sélectionnez le groupe de journaux.

1. Sur la page **Informations de groupe de journaux**, cliquez sur l’onglet **Flux de journaux**.

1. Pour rechercher les journaux d’un espace spécifique, recherchez les flux de journaux en utilisant le format suivant :

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

   Par exemple, pour rechercher les journaux de configuration de cycle de vie pour l’ID de domaine `d-m85lcu8vbqmz`, le nom d’espace `i-sonic-js` et le type d’application `JupyterLab`, utilisez la chaîne de recherche suivante :

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

## Expiration de la configuration de cycle de vie
<a name="jl-lcc-debug-timeout"></a>

Le délai d’expiration de la configuration du cycle de vie est limité à 5 minutes. Si un script de configuration de cycle de vie prend plus de 5 minutes à s’exécuter, vous obtenez une erreur.

Pour résoudre cette erreur, veillez à ce que votre script de configuration de cycle de vie se termine en moins de 5 minutes. 

Pour vous aider à diminuer la durée de l’exécution de scripts, essayez ce qui suit :
+ Réduisez les étapes inutiles. Par exemple, limitez quels environnements conda peuvent installer de grands packages.
+ Exécutez les tâches en parallèle.
+ Utilisez la commande nohup dans votre script pour vous assurer que les signaux de coupure sont ignorés afin que le script s’exécute sans s’arrêter.

# Détachement des configurations de cycle de vie
<a name="jl-lcc-delete"></a>

Pour mettre à jour votre script, vous devez créer un nouveau script de configuration du cycle de vie et l'associer au domaine (domaine), au profil utilisateur ou à l'espace partagé Amazon SageMaker AI correspondant. Un script de configuration de cycle de vie ne peut pas être modifié après sa création. Pour plus d’informations sur la création et l’attachement de la configuration de cycle de vie, consultez [Création d’une configuration de cycle de vie](jl-lcc-create.md).

La section suivante montre comment détacher une configuration de cycle de vie à l’aide de l’ AWS Command Line Interface (AWS CLI).

## Détachez-le à l'aide du AWS CLI
<a name="jl-lcc-delete-cli"></a>

Pour détacher une configuration de cycle de vie à l’aide de l’AWS CLI, supprimez la configuration de cycle de vie souhaitée de la liste des configurations de cycle de vie attachées à la ressource. Vous transmettez ensuite la liste dans le cadre de la commande correspondante :
+ [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)

Par exemple, la commande suivante supprime toutes les configurations de cycle de vie de l' JupyterLab application attachée au domaine.

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