

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

# JupyterLab 亚马逊 SageMaker Studio 经典版中的版本控制
<a name="studio-jl"></a>

**重要**  
允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义 IAM 策略还必须授予向这些资源添加标签的权限。之所以需要为资源添加标签的权限，是因为 Studio 和 Studio Classic 会自动为创建的任何资源添加标签。如果 IAM 策略允许 Studio 和 Studio Classic 创建资源但不允许标记，则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息，请参阅 [提供标记 A SageMaker I 资源的权限](security_iam_id-based-policy-examples.md#grant-tagging-permissions)。  
[Amazon 亚马逊 A SageMaker I 的托管策略](security-iam-awsmanpol.md)授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。

**重要**  
截至 2023 年 11 月 30 日，之前的亚马逊 SageMaker Studio 体验现在被命名为 Amazon St SageMaker udio Classic。以下部分专门介绍如何使用 Studio Classic 应用程序。有关使用更新的 Studio 体验的信息，请参阅 [亚马逊 SageMaker Studio](studio-updated.md)。  
Studio Classic 仍针对现有工作负载进行维护，但不再可供入门使用。您只能停止或删除现有的 Studio Classic 应用程序，不能创建新的应用程序。我们建议您将[工作负载迁移到全新 Studio 体验](studio-updated-migrate.md)。

Amazon SageMaker Studio Classic 界面基于此 JupyterLab，它是一个基于 Web 的交互式开发环境，用于存放笔记本、代码和数据。Studio 经典版仅支持使用 JupyterLab 3.

如果您使用 2022 年 8 月 31 日之前的或 23 年 2 月 22 日 Amazon Web Services 管理控制台 之前的创建域名和用户配置文件，则您的 Stu Amazon Command Line Interface dio Classic 实例默认为 1。 JupyterLab 2024 年 1 月 7 日之后，您将无法创建任何运行 1 的 Studio Classic 应用程序。 JupyterLab 

## JupyterLab 3
<a name="jl3"></a>

JupyterLab 3 包括以下在先前版本中没有的功能。有关这些功能的更多信息，请参阅 [JupyterLab 3.0 已发布！](https://blog.jupyter.org/jupyterlab-3-0-is-out-4f58385e25bb) 。
+ 使用 Base Python 2.0 和 Data Science 2.0 内核时的可视化调试器。
+ 文件浏览器筛选器 
+ 目录 (TOC) 
+ 多语言支持 
+ 简单模式 
+ 单接口模式 

### 对 JupyterLab 3 的重要更改
<a name="jl3-changes"></a>

 使用 JupyterLab 3 时请考虑以下几点：
+ 使用设置 JupyterLab 版本时 Amazon CLI，请从中的图像列表中为您的区域和 JupyterLab 版本选择相应的图片[来自 Amazon CLI](#studio-jl-set-cli)。
+ 在 JupyterLab 3 中，安装扩展之前必须激活 `studio` conda 环境。有关更多信息，请参阅 [安装 JupyterLab 和 Jupyter 服务器扩展](#studio-jl-install)。
+ 只有在使用以下映像时才支持 Debugger：
  + Base Python 2.0
  + Data Science 2.0
  + Base Python 3.0
  + Data Science 3.0

## 使用 IAM 策略条件密钥限制默认 JupyterLab 版本
<a name="iam-policy"></a>

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

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

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

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

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

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

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

## 设置默认 JupyterLab 版本
<a name="studio-jl-set"></a>

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

### 在 控制台中
<a name="studio-jl-set-console"></a>

 在创建资源期间，您可以选择要在域或用户配置文件级别上使用的默认 JupyterLab 版本。要使用控制台设置默认 JupyterLab 版本，请参阅[亚马逊 SageMaker AI 域名概述](gs-studio-onboard.md)。  

### 来自 Amazon CLI
<a name="studio-jl-set-cli"></a>

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

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

下表列出了每个区域 ARNs 的可用 JupyterLab 版本：


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

#### 创建或更新域
<a name="studio-jl-set-cli-domain"></a>

 您可以通过调用[CreateDomain](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_CreateDomain.html)或[UpdateDomain](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_UpdateDomain.html)并传递`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"
    }
  }
}'
```

#### 创建或更新用户配置文件
<a name="studio-jl-set-cli-user"></a>

 通过调用[CreateUserProfile](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_CreateUserProfile.html)或[UpdateUserProfile](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_UpdateUserProfile.html)并传递`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 版本
<a name="studio-jl-view"></a>

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

1.  导航到 A SageMaker I **域名**页面。

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

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

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

1.  要更新 JupyterLab 版本，请选择**操作**。

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

1.  在 **Studio Classic 设置**页面中，从下拉菜单中选择 JupyterLab 版本。

1.  成功更新用户配置文件的 JupyterLab 版本后，重新启动 JupyterServer 应用程序以使版本更改生效。有关重新启动 JupyterServer 应用程序的更多信息，请参阅[关闭并更新 Amazon SageMaker Studio 经典版](studio-tasks-update-studio.md)。

## 安装 JupyterLab 和 Jupyter 服务器扩展
<a name="studio-jl-install"></a>

在 JupyterLab 3 中，安装扩展之前必须激活 `studio` conda 环境。安装方法会有所不同，具体取决于您是从 Studio Classic 中安装扩展程序还是使用生命周期配置脚本。

### 从 Studio Classic 中安装扩展程序
<a name="studio-jl-install-studio"></a>

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

```
# Before installing extensions
conda activate studio

# Install your extensions
pip install <JUPYTER_EXTENSION>

# After installing extensions
conda deactivate
```

### 使用生命周期配置脚本安装扩展程序
<a name="studio-jl-install-lcc"></a>

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

#### 现有的生命周期配置脚本
<a name="studio-jl-install-lcc-existing"></a>

如果您要重复使用必须同时适用于两个版本的现有生命周期配置脚本 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;
```

#### 新的生命周期配置脚本
<a name="studio-jl-install-lcc-new"></a>

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

```
# Before installing extension
eval "$(conda shell.bash hook)"
conda activate studio


# Install your extensions
pip install <JUPYTER_EXTENSION>


conda deactivate
```