Gestion des versions de JupyterLab dans Amazon SageMaker Studio Classic - Amazon SageMaker AI

Gestion des versions de JupyterLab dans Amazon SageMaker Studio Classic

Important

Les politiques IAM personnalisées qui autorisent Amazon SageMaker Studio ou Amazon SageMaker Studio Classic à créer des ressources Amazon SageMaker doivent également accorder des autorisations pour ajouter des balises à ces ressources. L’autorisation d’ajouter des balises aux ressources est requise, car Studio et Studio Classic balisent automatiquement toutes les ressources qu’ils créent. Si une politique IAM autorise Studio et Studio Classic à créer des ressources mais n’autorise pas le balisage, des erreurs « AccessDenied » peuvent se produire lors de la tentative de création de ressources. Pour plus d’informations, consultez Octroi d’autorisations pour baliser les ressources SageMaker AI.

Les Politiques gérées par AWS pour Amazon SageMaker AI qui autorisent la création de ressources SageMaker incluent déjà des autorisations permettant d’ajouter des balises lors de la création de ces ressources.

Important

Depuis le 30 novembre 2023, l’expérience Amazon SageMaker Studio précédente s’appelle désormais Amazon SageMaker Studio Classic. La section suivante est spécifique à l’utilisation de l’application Studio Classic. Pour en savoir plus sur l’utilisation de l’expérience Studio mise à jour, consultez Amazon SageMaker Studio.

L’interface d’Amazon SageMaker Studio Classic est basée sur JupyterLab, un environnement de développement interactif basé sur le Web pour les blocs-notes, le code et les données. Studio Classic prend uniquement en charge l’utilisation de JupyterLab 3.

Si vous avez créé votre domaine et votre profil utilisateur à l’aide de la AWS Management Console avant le 31/08/2022 ou à l’aide de l’AWS Command Line Interface avant le 22/02/2023, votre instance Studio Classic est JupyterLab 1 par défaut. Depuis le 01/07/2024, vous ne pouvez plus créer d’applications Studio Classic exécutant JupyterLab 1.

JupyterLab 3

JupyterLab 3 inclut les fonctionnalités suivantes qui ne sont pas disponibles dans les versions précédentes. Pour plus d'informations sur ces fonctionnalités, consultez JupyterLab 3.0 est sorti ! (Français non garanti).

  • Débogueur visuel lors de l'utilisation des noyaux Base Python 2.0 et Data Science 2.0.

  • Filtre de l'explorateur de fichiers

  • Table des matières

  • Prise en charge multilingue

  • Mode simple

  • Mode d'interface unique

Changements importants apportés à JupyterLab 3

Tenez compte des éléments suivants lorsque vous utilisez JupyterLab 3 :

  • Lorsque vous définissez la version de JupyterLab à l'aide de l'interface AWS CLI, sélectionnez l'image correspondante pour votre région et la version de JupyterLab dans la liste d'images dans À partir de l'interface AWS CLI.

  • Dans JupyterLab 3, vous devez activer l'environnement conda de studio avant d'installer les extensions. Pour plus d’informations, consultez Installation d’extensions JupyterLab et Jupyter Server.

  • Le débogueur est pris en charge uniquement avec les images suivantes :

    • Base Python 2.0

    • Data Science 2.0

    • Base Python 3.0

    • Data Science 3.0

Restriction de la version de JupyterLab par défaut à l’aide d’une clé de condition de politique IAM

Vous pouvez utiliser les clés de condition de politique IAM pour limiter la version de JupyterLab que vos utilisateurs peuvent lancer.

La politique suivante montre comment limiter la version de JupyterLab au niveau du domaine.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "BlockJupyterLab3DomainLevelAppCreation", "Effect": "Deny", "Action": [ "sagemaker:CreateDomain", "sagemaker:UpdateDomain" ], "Resource": "*", "Condition": { "ForAnyValue:ArnLike": { "sagemaker:ImageArns": "arn:aws:sagemaker:us-east-1:111122223333:image/jupyter-server-3" } } } ] }

La politique suivante montre comment limiter la version de JupyterLab au niveau du profil utilisateur.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "BlockUsersFromCreatingJupyterLab3Apps", "Effect": "Deny", "Action": [ "sagemaker:CreateUserProfile", "sagemaker:UpdateUserProfile" ], "Resource": "*", "Condition": { "ForAnyValue:ArnLike": { "sagemaker:ImageArns": "arn:aws:sagemaker:us-east-1:111122223333:image/jupyter-server-3" } } } ] }

La politique suivante montre comment limiter la version de JupyterLab au niveau de l’application. La demande CreateApp doit inclure l'ARN de l'image pour que cette politique s'applique.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "BlockJupyterLab3AppLevelAppCreation", "Effect": "Deny", "Action": "sagemaker:CreateApp", "Resource": "*", "Condition": { "ForAnyValue:ArnLike": { "sagemaker:ImageArns": "arn:aws:sagemaker:us-east-1:111122223333:image/jupyter-server-3" } } } ] }

Définition d’une version de JupyterLab par défaut

Les sections suivantes montrent comment définir une version par défaut de JupyterLab pour Studio Classic à l’aide de la console ou de l’AWS CLI. 

À partir de la console

Vous pouvez sélectionner la version par défaut de JupyterLab à utiliser au niveau du domaine ou du profil utilisateur lors de la création de la ressource. Pour définir la version par défaut de JupyterLab à l'aide de la console, consultez Présentation du domaine Amazon SageMaker AI

À partir de l'interface AWS CLI

Vous pouvez sélectionner la version par défaut de JupyterLab à utiliser au niveau du domaine ou du profil utilisateur à l'aide de l'interface AWS CLI. 

Pour définir la version par défaut de JupyterLab à l’aide de l’interface AWS CLI, vous devez inclure l’ARN de la version par défaut de JupyterLab souhaitée dans le cadre d’une commande AWS CLI. Cet ARN diffère en fonction de la version et de la région du domaine SageMaker AI. 

Le tableau suivant répertorie les ARN des versions disponibles de JupyterLab pour chaque région :

Région JL3
us-east-1 arn:aws:sagemaker:us-east-1:081325390199:image/jupyter-server-3
us-east-2 arn:aws:sagemaker:us-east-2:429704687514:image/jupyter-server-3
us-west-1 arn:aws:sagemaker:us-west-1:742091327244:image/jupyter-server-3
us-west-2 arn:aws:sagemaker:us-west-2:236514542706:image/jupyter-server-3
af-south-1 arn:aws:sagemaker:af-south-1:559312083959:image/jupyter-server-3
ap-east-1 arn:aws:sagemaker:ap-east-1:493642496378:image/jupyter-server-3
ap-south-1 arn:aws:sagemaker:ap-south-1:394103062818:image/jupyter-server-3
ap-northeast-2 arn:aws:sagemaker:ap-northeast-2:806072073708:image/jupyter-server-3
ap-southeast-1 arn:aws:sagemaker:ap-southeast-1:492261229750:image/jupyter-server-3
ap-southeast-2 arn:aws:sagemaker:ap-southeast-2:452832661640:image/jupyter-server-3
ap-northeast-1 arn:aws:sagemaker:ap-northeast-1:102112518831:image/jupyter-server-3
ca-central-1 arn:aws:sagemaker:ca-central-1:310906938811:image/jupyter-server-3
eu-central-1 arn:aws:sagemaker:eu-central-1:936697816551:image/jupyter-server-3
eu-west-1 arn:aws:sagemaker:eu-west-1:470317259841:image/jupyter-server-3
eu-west-2 arn:aws:sagemaker:eu-west-2:712779665605:image/jupyter-server-3
eu-west-3 arn:aws:sagemaker:eu-west-3:615547856133:image/jupyter-server-3
eu-north-1 arn:aws:sagemaker:eu-north-1:243637512696:image/jupyter-server-3
eu-south-1 arn:aws:sagemaker:eu-south-1:592751261982:image/jupyter-server-3
eu-south-2 arn:aws:sagemaker:eu-south-2:127363102723:image/jupyter-server-3
sa-east-1 arn:aws:sagemaker:sa-east-1:782484402741:image/jupyter-server-3
cn-north-1 arn:aws-cn:sagemaker:cn-north-1:390048526115:image/jupyter-server-3
cn-northwest-1 arn:aws-cn:sagemaker:cn-northwest-1:390780980154:image/jupyter-server-3

Création ou mise à jour d’un domaine

Vous pouvez définir une version par défaut de JupyterServer au niveau du domaine en invoquant CreateDomain ou UpdateDomain et en passant le champ UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn.

L'exemple suivant montre comment créer un domaine avec JupyterLab 3 par défaut, à l'aide de l'interface AWS CLI :

aws --region <REGION> \ sagemaker create-domain \ --domain-name <NEW_DOMAIN_NAME> \ --auth-mode <AUTHENTICATION_MODE> \ --subnet-ids <SUBNET-IDS> \ --vpc-id <VPC-ID> \ --default-user-settings '{   "JupyterServerAppSettings": {     "DefaultResourceSpec": {       "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3",       "InstanceType": "system"     }   } }'

L'exemple suivant montre comment mettre à jour un domaine pour utiliser JupyterLab 3 par défaut, à l'aide de l'interface AWS CLI :

aws --region <REGION> \ sagemaker update-domain \ --domain-id <YOUR_DOMAIN_ID> \ --default-user-settings '{ "JupyterServerAppSettings": { "DefaultResourceSpec": { "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3", "InstanceType": "system" } } }'

Création ou mise à jour d'un profil utilisateur

Vous pouvez définir une version par défaut de JupyterServer au niveau du profil utilisateur en invoquant CreateUserProfile ou UpdateUserProfile et en passant le champ UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn.

L'exemple suivant montre comment créer un profil utilisateur avec JupyterLab 3 par défaut sur un domaine existant, à l'aide de l'interface AWS CLI :

aws --region <REGION> \ sagemaker create-user-profile \ --domain-id <YOUR_DOMAIN_ID> \ --user-profile-name <NEW_USERPROFILE_NAME> \ --query UserProfileArn --output text \ --user-settings '{   "JupyterServerAppSettings": {     "DefaultResourceSpec": {       "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3",       "InstanceType": "system"     }   } }'

L’exemple suivant montre comment mettre à jour un profil utilisateur pour utiliser JupyterLab 3 par défaut, à l’aide de l’interface AWS CLI :

aws --region <REGION> \ sagemaker update-user-profile \ --domain-id <YOUR_DOMAIN_ID> \ --user-profile-name <EXISTING_USERPROFILE_NAME> \ --user-settings '{ "JupyterServerAppSettings": { "DefaultResourceSpec": { "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3", "InstanceType": "system" } } }'

Affichage et mise à jour de la version de JupyterLab d'une application depuis la console

L’exemple suivant montre comment afficher et mettre à jour la version de JupyterLab d’une application.

  1. Accédez à la page domaines de SageMaker AI.

  2. Sélectionnez un domaine pour afficher ses profils utilisateur.

  3. Sélectionnez un utilisateur pour afficher ses applications.

  4. Pour afficher la version de JupyterLab d'une application, sélectionnez le nom de l'application.

  5. Pour mettre à jour la version de JupyterLab, sélectionnez Action.

  6. Dans le menu déroulant, sélectionnez Change JupyterLab version (Modifier la version de JupyterLab).

  7. Dans la page Paramètres Studio Classic, sélectionnez la version de JupyterLab dans le menu déroulant.

  8. Une fois que la version de JupyterLab pour le profil utilisateur a été correctement mise à jour, redémarrez l’application JupyterServer pour rendre les modifications de version effectives. Pour plus d'informations sur le redémarrage d'une application JupyterServer, consultez Arrêt et mise à jour d’Amazon SageMaker Studio Classic.

Installation d’extensions JupyterLab et Jupyter Server

Dans JupyterLab 3, vous devez activer l’environnement conda de studio avant d’installer les extensions. La méthode utilisée pour cela diffère si vous installez les extensions depuis Studio Classic ou en utilisant un script de configuration du cycle de vie.

Installation d’extensions depuis Studio Classic

Pour installer des extensions depuis Studio Classic, vous devez activer l’environnement studio avant d’installer les extensions.

# Before installing extensions conda activate studio # Install your extensions pip install <JUPYTER_EXTENSION> # After installing extensions conda deactivate

Installation d’extensions à l’aide d’un script de configuration du cycle de vie

Si vous installez les extensions JupyterLab et Jupyter Server dans votre script de configuration de cycle de vie, vous devez modifier votre script pour qu’il fonctionne avec JupyterLab 3. Les sections suivantes présentent le code nécessaire pour les scripts existant et nouveau de configuration de cycle de vie.

Script existant de configuration de cycle de vie

Si vous réutilisez un script existant de configuration de cycle de vie qui doit fonctionner avec les deux versions de JupyterLab, utilisez le code suivant dans votre script :

# Before installing extension export AWS_SAGEMAKER_JUPYTERSERVER_IMAGE="${AWS_SAGEMAKER_JUPYTERSERVER_IMAGE:-'jupyter-server'}" if [ "$AWS_SAGEMAKER_JUPYTERSERVER_IMAGE" = "jupyter-server-3" ] ; then eval "$(conda shell.bash hook)" conda activate studio fi; # Install your extensions pip install <JUPYTER_EXTENSION> # After installing extension if [ "$AWS_SAGEMAKER_JUPYTERSERVER_IMAGE" = "jupyter-server-3" ]; then conda deactivate fi;

Nouveau script de configuration de cycle de vie

Si vous écrivez un nouveau script de configuration du cycle de vie qui utilise uniquement JupyterLab 3, vous pouvez utiliser le code suivant dans votre script :

# Before installing extension eval "$(conda shell.bash hook)" conda activate studio # Install your extensions pip install <JUPYTER_EXTENSION> conda deactivate