JupyterLab 版本控制 - Amazon SageMaker AI

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

JupyterLab 版本控制

重要

允許 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 建立 Amazon SageMaker 資源的自訂IAM政策也必須授予許可,才能將標籤新增至這些資源。需要將標籤新增至資源的許可,因為 Studio 和 Studio Classic 會自動標記他們建立的任何資源。如果IAM政策允許 Studio 和 Studio Classic 建立資源,但不允許標記,則嘗試建立資源時可能會發生「AccessDenied」錯誤。如需詳細資訊,請參閱提供標記 SageMaker AI 資源的許可

AWS Amazon SageMaker AI 的 受管政策 提供建立 SageMaker 資源的許可,已包含建立這些資源時新增標籤的許可。

重要

截至 2023 年 11 月 30 日,先前的 Amazon SageMaker Studio 體驗現在已命名為 Amazon SageMaker Studio Classic。以下章節是使用 Studio Classic 應用程式的特定部分。如需使用更新 Studio 體驗的相關資訊,請參閱 Amazon SageMaker Studio

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

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

JupyterLab 3

JupyterLab 3 包含下列在舊版中無法使用的功能。如需這些功能的詳細資訊,請參閱 JupyterLab 3.0 已發行!

  • 使用基本 Python 2.0 和 Data Science 2.0 核心時的視覺化偵錯工具。

  • 檔案瀏覽器篩選條件

  • 目錄 (TOC)

  • 多語言支援

  • 簡易模式

  • 單一介面模式

3 的重要變更 JupyterLab

使用 JupyterLab 3 時請考慮下列事項:

  • 使用 設定 JupyterLab 版本時 AWS CLI,請從 中的映像清單中選取您區域和 JupyterLab 版本的對應映像從 AWS CLI

  • 在 JupyterLab 3 中,您必須先啟用 studio conda 環境,才能安裝擴充功能。如需詳細資訊,請參閱安裝 JupyterLab 和 Jupyter 伺服器延伸模組

  • 只有在使用下列映像時,才支援偵錯工具:

    • 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 版本 AWS CLI。 

從主控台

您可以在資源建立期間,選取要在網域或使用者設定檔層級上使用的預設 JupyterLab 版本。若要使用主控台設定預設 JupyterLab 版本,請參閱 Amazon SageMaker AI 網域概觀。 

從 AWS CLI

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

若要使用 設定預設 JupyterLab 版本 AWS CLI,您必須將ARN所需預設 JupyterLab 版本的 納入 AWS CLI 命令的一部分。這會根據 SageMaker AI 網域的版本和區域ARN而有所不同。 

下表列出每個區域的ARNs可用 JupyterLab 版本:

區域 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

建立或更新網域

您可以透過叫用 CreateDomainUpdateDomain並傳遞 UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn欄位,在網域層級設定預設 JupyterServer 版本。

以下說明如何使用 建立以 JupyterLab 3 做為預設值的網域 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"     }   } }'

以下說明如何使用 將網域更新為預設使用 JupyterLab 3 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" } } }'

建立或更新使用者設定檔

您可以透過叫用 CreateUserProfileUpdateUserProfile並傳遞UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn 欄位,在使用者設定檔層級設定預設 JupyterServer 版本。

以下說明如何使用 ,在現有網域上以 JupyterLab 3 做為預設值建立使用者設定檔 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"     }   } }'

以下說明如何使用 將使用者設定檔更新為預設使用 JupyterLab 3 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" } } }'

從主控台檢視和更新應用程式的 JupyterLab 版本

以下說明如何檢視和更新應用程式的 JupyterLab 版本。

  1. 導覽至 SageMaker AI 網域頁面。

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

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

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

  5. 若要更新 JupyterLab 版本,請選取動作

  6. 從下拉式功能表中,選取變更 JupyterLab 版本

  7. Studio Classic 設定頁面,從下拉式功能表中選取 JupyterLab 版本。

  8. 成功更新使用者設定檔的 JupyterLab 版本後,請重新啟動 JupyterServer 應用程式,使版本變更生效。如需重新啟動 JupyterServer 應用程式的詳細資訊,請參閱關閉並更新 SageMaker Studio Classic

安裝 JupyterLab 和 Jupyter 伺服器延伸模組

在 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