

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.

# Configurations du cycle de vie dans Amazon SageMaker Studio
<a name="studio-lifecycle-configurations"></a>

Les configurations du cycle de vie (LCCs) sont des scripts que les administrateurs et les utilisateurs peuvent utiliser pour automatiser la personnalisation des applications suivantes au sein de votre environnement Amazon SageMaker Studio :
+ Amazon SageMaker AI JupyterLab
+ Éditeur de code, basé sur Code-OSS, Visual Studio Code – Open Source
+ Studio Classic
+ Instance de bloc-notes

La personnalisation de votre application inclut les opérations suivantes :
+ Installation des packages personnalisés
+ Configuration des extensions
+ Préchargement des jeux de données
+ Configuration des référentiels de code source

Les utilisateurs créent et attachent des configurations de cycle de vie intégrées à leurs propres profils utilisateur. Les administrateurs créent et attachent des configurations de cycle de vie par défaut ou intégrées au niveau du domaine, de l’espace ou du profil utilisateur.

**Important**  
Amazon SageMaker Studio exécute d'abord la configuration du cycle de vie intégrée, puis exécute le LCC par défaut. Amazon SageMaker AI ne résoudra pas les conflits de packages entre l'utilisateur et l'administrateur LCCs. Par exemple, si la configuration LCC intégrée installe `python3.11` et que la configuration LCC par défaut installe `python3.12`, Studio installe `python3.12`. 

# Création et attachement de configurations de cycle de vie
<a name="studio-lifecycle-configurations-create"></a>

Vous pouvez créer et associer des configurations de cycle de vie à l'aide du AWS Management Console ou du AWS Command Line Interface.

**Topics**
+ [Création et attachement de configurations de cycle de vie (AWS CLI)](#studio-lifecycle-configurations-create-cli)
+ [Création et attachement de configurations de cycle de vie (console)](#studio-lifecycle-configurations-create-console)

## Création et attachement de configurations de cycle de vie (AWS CLI)
<a name="studio-lifecycle-configurations-create-cli"></a>

**Important**  
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 machine locale, exécutez `aws configure` et saisissez vos AWS informations d'identification. 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).

La procédure suivante montre comment créer un script de configuration du cycle de vie qui s'imprime `Hello World` dans l'éditeur de code ou JupyterLab.

**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-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type application-type
   ```

   Pour `studio-lifecycle-config-app-type`, spécifiez *CodeEditor* ou *JupyterLab*.
**Note**  
ARN renvoyé de la configuration de cycle de vie nouvellement créée. Cet ARN est requis pour attacher la configuration du cycle de vie à votre application.

Pour s’assurer que les environnements sont correctement personnalisés, les utilisateurs et les administrateurs utilisent différentes commandes pour attacher les configurations de cycle de vie.

### Attachement des configurations de cycle de vie par défaut (administrateur)
<a name="studio-lifecycle-configurations-attach-cli-administrator"></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 du cycle de vie d'une JupyterLab application. 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]
  }
}'
```

La commande suivante crée un profil utilisateur avec une configuration de cycle de vie pour une application de l’éditeur de code. Ajoutez l’ARN de la configuration de cycle de vie provenant de l’étape précédente au paramètre `CodeEditorAppSettings` 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 application d’éditeur de code avec l’ 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 `CodeEditorAppSettings`.

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

### Attachement de configurations de cycle de vie intégrées (utilisateur)
<a name="studio-lifecycle-configurations-attach-cli-user"></a>

Pour attacher la configuration de cycle de vie, vous devez mettre à jour le paramètre `UserSettings` pour votre profil utilisateur.

La commande suivante crée un profil utilisateur avec une configuration du cycle de vie d'une JupyterLab application. Ajoutez l’ARN de la configuration de cycle de vie de l’étape précédente au paramètre `JupyterLabAppSettings` de votre profil utilisateur.

```
# Update a UserProfile
aws sagemaker update-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterLabAppSettings": {
  "BuiltInLifecycleConfigArn":"lifecycle-configuration-arn"
  }
}'
```

La commande suivante crée un profil utilisateur avec une configuration de cycle de vie pour une application de l’éditeur de code. Ajoutez l’ARN de la configuration de cycle de vie de l’étape précédente au paramètre `CodeEditorAppSettings` de votre profil utilisateur. La configuration de cycle de vie transmise par l’utilisateur doit figurer dans la liste des configurations de cycle de vie de `CodeEditorAppSettings`.

```
# Update a UserProfile
aws sagemaker update-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"CodeEditorAppSettings": {
  "BuiltInLifecycleConfigArn":"lifecycle-configuration-arn"
  }
}'
```

## Création et attachement de configurations de cycle de vie (console)
<a name="studio-lifecycle-configurations-create-console"></a>

Pour créer et associer des configurations de cycle de vie dans le AWS Management Console, accédez à la [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker) et choisissez **Configurations du cycle** de vie dans le menu de navigation de gauche. La console vous guidera tout au long du processus de création de la configuration de cycle de vie.

# Débogage des configurations de cycle de vie
<a name="studio-lifecycle-configurations-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](#studio-lifecycle-configurations-debug-logs)
+ [Expiration de la configuration de cycle de vie](studio-lifecycle-configurations-debug-timeout.md)

## Vérifiez le processus de configuration du cycle de vie à partir CloudWatch des journaux
<a name="studio-lifecycle-configurations-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 et d’une application 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
   ```

1. Pour visualiser les journaux d’exécution de script, sélectionnez le flux de journal auquel `LifecycleConfigOnStart` est ajouté.

# Expiration de la configuration de cycle de vie
<a name="studio-lifecycle-configurations-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.