JupyterLab 版本控制 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

JupyterLab 版本控制

重要

允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义 IAM 策略还必须授予向这些资源添加标签的权限。需要向资源添加标签的权限,因为 Studio 和 Studio Classic 会自动标记他们创建的任何资源。如果 IAM 策略允许 Studio 和 Studio Classic 创建资源但不允许标记,则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息,请参阅 提供标记 SageMaker资源的权限

Amazon Amazon 托管政策 SageMaker授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。

重要

截至 2023 年 11 月 30 日,之前的亚马逊 SageMaker Studio 体验现在被命名为 Amazon St SageMaker udio Classic。以下部分专门介绍如何使用 Studio Classic 应用程序。有关使用更新后的 Studio 体验的信息,请参阅亚马逊 SageMaker Studio

Amazon SageMaker Studio Classic 界面基于此 JupyterLab,它是一个基于 Web 的交互式开发环境,用于存放笔记本、代码和数据。Studio Classic 现在支持同时使用 JupyterLab 1 和 JupyterLab 3。Studio Classic JupyterLab 中的默认版本为 JupyterLab 3。如果您使用 2022 年 8 月 31 日之前的或 23 年 2 月 22 日 Amazon Web Services Management Console 之前的 Amazon SageMaker 域名和用户个人资料创建,则您的 Stu Amazon Command Line Interface dio Classic 实例默认为 1。 JupyterLab 2022 年 8 月 31 日之后,亚马逊 SageMaker Studio Classic 上的版本 JupyterLab 1 仅收到安全修复程序。您可以选择要运行的版本。但是,每个用户配置文件一次只能运行一个的 JupyterLab 实例。您不能 JupyterLab同时运行多个版本。

在 23 年 3 月 31 日之后,Studio Classic 仅支持创建 3 个应用程序。 JupyterLab 在该日期之后,Studio Classic 将停止支持 JupyterLab 1 个应用程序的创建。2023 年 4 月 30 日,Studio Classic 将移除所有运行 1 的现有应用程序。 JupyterLab 按照中的步骤,在 202 JupyterLab 3 年 4 月 30 日之前将现有的 JupyterLab 1 个应用程序更新为 3 个。从控制台查看和更新应用程序的 JupyterLab 版本

JupyterLab 3

JupyterLab 3 包括以下在先前版本中没有的功能。有关这些功能的更多信息,请参阅 JupyterLab 3.0 已发布!

  • 使用 Base Python 2.0 和 Data Science 2.0 内核时的可视化调试器。

  • 文件浏览器筛选器

  • 目录 (TOC)

  • 多语言支持

  • 简单模式

  • 单接口模式

对 JupyterLab 3 的重要更改

使用 JupyterLab 3 时请考虑以下几点:

  • 使用设置 JupyterLab 版本时 Amazon CLI,请从中的图像列表中为您的区域和 JupyterLab 版本选择相应的图片来自 Amazon CLI

  • 在 JupyterLab 3 中,你必须在安装扩展之前激活 studio conda 环境。有关更多信息,请参阅 安装 JupyterLab 和 Jupyter 服务器扩展

  • 只有在使用以下映像时才支持 Debugger:

    • Base Python 2.0

    • Data Science 2.0

    • Base Python 3.0

    • Data Science 3.0

使用 IAM 策略条件密钥限制默认 JupyterLab 版本

您可以使用 IAM 策略条件密钥来限制您的用户可以启动的 JupyterLab 版本。

以下政策说明了如何在域级别限制 JupyterLab 版本。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Block users from creating JupyterLab 3 apps at the domain level", "Effect": "Deny", "Action": [ "sagemaker:CreateDomain", "sagemaker:UpdateDomain" ], "Resource": "*", "Condition": { "ForAnyValue:StringLike": { "sagemaker:ImageArns": "*image/jupyter-server-3" } } } ] }

以下策略说明了如何在用户配置文件级别限制 JupyterLab 版本。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Block users from creating JupyterLab 3 apps at the user profile level", "Effect": "Deny", "Action": [ "sagemaker:CreateUserProfile", "sagemaker:UpdateUserProfile" ], "Resource": "*", "Condition": { "ForAnyValue:StringLike": { "sagemaker:ImageArns": "*image/jupyter-server-3" } } } ] }

以下策略说明了如何在应用程序级别限制 JupyterLab 版本。CreateApp 请求必须包含映像 ARN,才能应用此策略。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Block users from creating JupyterLab 3 apps at the application level", "Effect": "Deny", "Action": "sagemaker:CreateApp", "Resource": "*", "Condition": { "ForAnyValue:StringLike": { "sagemaker:ImageArns": "*image/jupyter-server-3" } } } ] }

设置默认 JupyterLab版本

以下各节介绍如何使用控制台或 Studio Classic 设置默认 JupyterLab 版本 Amazon CLI。 

在 控制台中

在创建资源期间,您可以选择要在域或用户配置文件级别上使用的默认 JupyterLab 版本。要使用控制台设置默认 JupyterLab 版本,请参阅Amazon SageMaker 域名概述。 

来自 Amazon CLI

您可以使用选择要在域或用户配置文件级别上使用的默认 JupyterLab 版本 Amazon CLI。 

要使用设置默认 JupyterLab 版本 Amazon CLI,您必须在命令中包含所需默认 JupyterLab 版本的 ARN。 Amazon CLI 此 ARN 因域名的版本和区域而异。 SageMaker  

下表列出了每个区域可用 JupyterLab 版本的 ARN:

区域 JL1 JL3
us-east-1 arn:aws:sagemaker:us-east-1:081325390199:image/jupyter-server arn:aws:sagemaker:us-east-1:081325390199:image/jupyter-server-3
us-east-2 arn:aws:sagemaker:us-east-2:429704687514:image/jupyter-server arn:aws:sagemaker:us-east-2:429704687514:image/jupyter-server-3
us-west-1 arn:aws:sagemaker:us-west-1:742091327244:image/jupyter-server arn:aws:sagemaker:us-west-1:742091327244:image/jupyter-server-3
us-west-2 arn:aws:sagemaker:us-west-2:236514542706:image/jupyter-server arn:aws:sagemaker:us-west-2:236514542706:image/jupyter-server-3
af-south-1 arn:aws:sagemaker:af-south-1:559312083959:image/jupyter-server arn:aws:sagemaker:af-south-1:559312083959:image/jupyter-server-3
ap-east-1 arn:aws:sagemaker:ap-east-1:493642496378:image/jupyter-server arn:aws:sagemaker:ap-east-1:493642496378:image/jupyter-server-3
ap-south-1 arn:aws:sagemaker:ap-south-1:394103062818:image/jupyter-server arn:aws:sagemaker:ap-south-1:394103062818:image/jupyter-server-3
ap-northeast-2 arn:aws:sagemaker:ap-northeast-2:806072073708:image/jupyter-server arn:aws:sagemaker:ap-northeast-2:806072073708:image/jupyter-server-3
ap-southeast-1 arn:aws:sagemaker:ap-southeast-1:492261229750:image/jupyter-server arn:aws:sagemaker:ap-southeast-1:492261229750:image/jupyter-server-3
ap-southeast-2 arn:aws:sagemaker:ap-southeast-2:452832661640:image/jupyter-server arn:aws:sagemaker:ap-southeast-2:452832661640:image/jupyter-server-3
ap-northeast-1 arn:aws:sagemaker:ap-northeast-1:102112518831:image/jupyter-server arn:aws:sagemaker:ap-northeast-1:102112518831:image/jupyter-server-3
ca-central-1 arn:aws:sagemaker:ca-central-1:310906938811:image/jupyter-server arn:aws:sagemaker:ca-central-1:310906938811:image/jupyter-server-3
eu-central-1 arn:aws:sagemaker:eu-central-1:936697816551:image/jupyter-server arn:aws:sagemaker:eu-central-1:936697816551:image/jupyter-server-3
eu-west-1 arn:aws:sagemaker:eu-west-1:470317259841:image/jupyter-server arn:aws:sagemaker:eu-west-1:470317259841:image/jupyter-server-3
eu-west-2 arn:aws:sagemaker:eu-west-2:712779665605:image/jupyter-server arn:aws:sagemaker:eu-west-2:712779665605:image/jupyter-server-3
eu-west-3 arn:aws:sagemaker:eu-west-3:615547856133:image/jupyter-server arn:aws:sagemaker:eu-west-3:615547856133:image/jupyter-server-3
eu-north-1 arn:aws:sagemaker:eu-north-1:243637512696:image/jupyter-server arn:aws:sagemaker:eu-north-1:243637512696:image/jupyter-server-3
eu-south-1 arn:aws:sagemaker:eu-south-1:592751261982:image/jupyter-server arn:aws:sagemaker:eu-south-1:592751261982:image/jupyter-server-3
eu-south-2 arn:aws:sagemaker:eu-south-2:127363102723:image/jupyter-server arn:aws:sagemaker:eu-south-2:127363102723:image/jupyter-server-3
sa-east-1 arn:aws:sagemaker:sa-east-1:782484402741:image/jupyter-server 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 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 arn:aws-cn:sagemaker:cn-northwest-1:390780980154:image/jupyter-server-3

创建或更新域名

您可以通过调用CreateDomainUpdateDomain并传递UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn字段来在域级别设置默认 JupyterServer 版本。

以下内容显示了如何使用以下方法创建默认值为 JupyterLab 3 的域 Amazon 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"     }   } }'

以下内容显示了如何使用以下方法更新域名以使用 JupyterLab 3 作为默认域 Amazon 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" } } }'

创建或更新用户配置文件

通过调用CreateUserProfileUpdateUserProfile并传递UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn字段,可以在用户配置文件级别设置默认 JupyterServer 版本。

以下内容显示了如何使用以下方法在现有网域上创建默认值为 JupyterLab 3 的用户配置文件 Amazon 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"     }   } }'

以下内容显示了如何使用以下方法更新用户配置文件以使用 JupyterLab 3 作为默认值 Amazon 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" } } }'

从控制台查看和更新应用程序的 JupyterLab 版本

以下内容显示了如何查看和更新应用程序的 JupyterLab 版本。

  1. 导航到 SageMaker 名页面。

  2. 选择一个域以查看其用户配置文件。

  3. 选择一个用户以查看其应用程序。

  4. 要查看应用程序的 JupyterLab 版本,请选择该应用程序的名称。

  5. 要更新 JupyterLab 版本,请选择操作

  6. 从下拉菜单中选择 “更改 JupyterLab 版本”。

  7. Studio Classic 设置页面中,从下拉菜单中选择 JupyterLab 版本。

  8. 成功更新用户配置文件的 JupyterLab 版本后,重新启动 JupyterServer 应用程序以使版本更改生效。有关重新启动 JupyterServer 应用程序的更多信息,请参阅关闭并更新 SageMaker Studio 经典版

安装 JupyterLab 和 Jupyter 服务器扩展

安装 JupyterLab 和 Jupyter 服务器扩展的过程因您的 Studio Classic 实例的 JupyterLab 版本而异。在 JupyterLab 1 中,您无需激活任何 conda 环境即可打开终端并安装扩展。在 JupyterLab 3 中,你必须在安装扩展之前激活 studio conda 环境。如果您是从 Studio Classic 中安装扩展程序或使用生命周期配置脚本,则执行此操作的方法会有所不同。

从 Studio Classic 中

要从 Studio Classic 中安装扩展,必须先激活studio环境,然后再安装扩展。

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

使用生命周期配置脚本安装扩展程序

如果您要在生命周期配置脚本中安装 JupyterLab 和 Jupyter Server 扩展程序,则必须修改脚本使其与 JupyterLab 3 配合使用。以下各节显示现有和新的生命周期配置脚本所需的代码。

现有的生命周期配置脚本

如果您要重复使用必须同时适用于两个版本的现有生命周期配置脚本 JupyterLab,请在脚本中使用以下代码:

# 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;

新的生命周期配置脚本

如果您正在编写仅使用 JupyterLab 3 的新生命周期配置脚本,则可以在脚本中使用以下代码:

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