Amazon SageMaker Studio Classic 中的 JupyterLab 版本控制 - Amazon SageMaker AI

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

Amazon SageMaker Studio Classic 中的 JupyterLab 版本控制

重要

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

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

重要

自 2023 年 11 月 30 日起,先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用 Studio Classic 應用程式。如需使用已更新 Studio 體驗的資訊,請參閱 Amazon SageMaker Studio

Studio Classic 仍會針對現有工作負載進行維護,但無法再用於加入。您只能停止或刪除現有的 Studio Classic 應用程式,而且無法建立新的應用程式。建議您將工作負載遷移至新的 Studio 體驗

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

JupyterLab 3 包含了先前版本中未提供的功能。如需這些功能的更多相關資訊,請參閱 JupyterLab 3.0 已發佈!

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

  • 檔案瀏覽器篩選條件

  • 目錄 (YOC)

  • 多語言支援

  • 簡易模式

  • 單一介面模式

JupyterLab 3 的重要變更

使用 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 版本。

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 版本

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

從主控台

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

從 AWS CLI

您可以使用 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

建立或更新網域

您可以調用 CreateDomainUpdateDomain 並傳遞 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" } } }'

建立或更新使用者設定檔

您可以調用建立使用者設定檔更新使用者設定檔並傳遞 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 版本

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

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

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

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

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

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

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

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

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