

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon SageMaker Studio Classic 中的 JupyterLab 版本控制
<a name="studio-jl"></a>

**重要**  
允許 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 建立 Amazon SageMaker 資源的自訂 IAM 政策也必須授與許可，才能將標籤新增至這些資源。需要將標籤新增至資源的許可，因為 Studio 和 Studio Classic 會自動標記它們建立的任何資源。如果 IAM 政策允許 Studio 和 Studio Classic 建立資源，但不允許標記，則在嘗試建立資源時可能會發生 "AccessDenied" 錯誤。如需詳細資訊，請參閱[提供標記 SageMaker AI 資源的許可](security_iam_id-based-policy-examples.md#grant-tagging-permissions)。  
提供許可來建立 SageMaker 資源的 [AWS Amazon SageMaker AI 的 受管政策](security-iam-awsmanpol.md) 已包含建立這些資源時新增標籤的許可。

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用 Studio Classic 應用程式。如需使用已更新 Studio 體驗的資訊，請參閱 [Amazon SageMaker Studio](studio-updated.md)。  
Studio Classic 仍會針對現有工作負載進行維護，但無法再用於加入。您只能停止或刪除現有的 Studio Classic 應用程式，而且無法建立新的應用程式。建議您[將工作負載遷移至新的 Studio 體驗](studio-updated-migrate.md)。

Amazon SageMaker Studio Classic 執行個體介面是以 JupyterLab 為基礎，這是一個適用於筆記本、程式碼和資料的 Web 型互動開發環境。Studio Classic 僅支援使用 JupyterLab 3。

如果您使用 08/31/2022 AWS 管理主控台 之前的 或使用 02/22/23 AWS Command Line Interface 之前的 建立網域和使用者設定檔，則 Studio Classic 執行個體預設為 JupyterLab 1。07/01/2024 後，您無法建立任何執行 JupyterLab 1 的 Studio Classic 應用程式。

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

JupyterLab 3 包含了先前版本中未提供的功能。如需這些功能的更多相關資訊，請參閱 [JupyterLab 3.0 已發佈！](https://blog.jupyter.org/jupyterlab-3-0-is-out-4f58385e25bb)。
+ 使用基本 Python 2.0 和 Data Science 2.0 核心時的視覺化偵錯工具。
+ 檔案瀏覽器篩選條件 
+ 目錄 (YOC) 
+ 多語言支援 
+ 簡易模式 
+ 單一介面模式 

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

 使用 JupyterLab 3 時，請注意下列事項：
+ 使用 設定 JupyterLab 版本時 AWS CLI，請從 中的映像清單中選取您 區域和 JupyterLab 版本的對應映像[從 AWS CLI](#studio-jl-set-cli)。
+ 在 JupyterLab 3 中，您必須先啟動`studio` conda 環境才能安裝延伸模組。如需更多資訊，請參閱[安裝 JupyterLab 和 Jupyter 伺服器延伸模組](#studio-jl-install)。
+ 只有在使用下列映像時，才支援偵錯工具：
  + 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>

下列各節說明如何使用主控台或 AWS CLI設定 Studio Classic 的預設 JupyterLab 版本。  

### 從主控台
<a name="studio-jl-set-console"></a>

 您可以在資源建立期間，選取要在網域或使用者設定檔層級使用的預設 JupyterLab 版本。若要使用主控台預設 JupyterLab 預設版本，請參閱[Amazon SageMaker AI 網域概觀](gs-studio-onboard.md)。  

### 從 AWS CLI
<a name="studio-jl-set-cli"></a>

 您可以使用 AWS CLI選取要在網域或使用者設定檔層級使用的預設 JupyterLab 版本。  

 若要使用 設定預設 JupyterLab 版本 AWS CLI，您必須在 AWS CLI 命令中包含所需預設 JupyterLab 版本的 ARN。此 ARN 會根據 SageMaker AI 網域的版本和區域而有所不同。  

下資料表列出了每個地區可用的 JupyterLab 版本的 ARN：


|  區域  |  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.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html) 或 [UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html) 並傳遞 `UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn` 欄位，在網域層級設定預設的 JupyterServer 版本。

 以下說明如何使用 AWS CLI以 JupyterLab 3 作為預設值來建立網域：

```
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"
    }
  }
}'
```

 以下說明如何使用 AWS CLI更新網域以使用 JupyterLab 3 作為預設值：

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

 您可以調用[建立使用者設定檔](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)或[更新使用者設定檔](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html)並傳遞 `UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn` 欄位，在使用者設定檔層級設定預設 JupyterServer 版本。

 以下說明如何使用 AWS CLI以 JupyterLab 3 作為現有網域上的預設值建立使用者設定檔：

```
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"
    }
  }
}'
```

 以下說明如何使用 AWS CLI更新使用者設定檔以使用 JupyterLab 3 作為預設值：

```
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.  導覽至 SageMaker AI **網域**頁面。

1.  選取網域以檢視其使用者設定檔。

1.  選取要檢視其應用程式的使用者。

1.  若要檢視應用程式的 JupyterLab 版本，請選取應用程式的名稱。

1.  若要更新 JupyterLab 版本，請選取**動作**。

1.  從下拉式清單功能表中，選取**變更 JupyterLab 版本**。

1.  從 **Studio Classic 設定**頁面中，從下拉式清單功能表中選取 JupyterLab 版本。

1.  成功更新使用者設定檔的 JupyterLab 版本後，請重新啟動 JupyterServer 應用程式，讓版本變更生效。如需重新啟動 JupyterServer 應用程式的更多相關資訊，請參閱[關閉並更新 Amazon SageMaker Studio Classic](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 伺服器延伸模組，您必須修改指令碼，使其能夠與 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
```