從 Amazon SageMaker Studio Classic 的 AWS CLI 建立生命週期組態 - Amazon SageMaker AI

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

從 Amazon SageMaker Studio Classic 的 AWS CLI 建立生命週期組態

重要

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

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

重要

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

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

下列主題說明如何使用 建立生命週期組態AWS CLI,以自動化 Studio Classic 環境的自訂。

先決條件

開始之前,請先完成以下先決條件:

步驟 1:建立生命週期組態

下列程序示範如何建立 Hello World 生命週期組態指令碼。

注意

每個指令碼最多可以有 16,384 個字元。

  1. 從您的本機機器,藉由以下內容建立一個名為 my-script.sh 的檔案。

    #!/bin/bash set -eux echo 'Hello World!'
  2. 將您的 my-script.sh 檔案轉換為 base64 格式。此要求可防止由於間距和換行編碼而發生的錯誤。

    LCC_CONTENT=`openssl base64 -A -in my-script.sh`
  3. 建立與 Studio Classic 搭配使用的生命週期組態。下列命令會建立在您啟動關聯 KernelGateway 應用程式時執行的生命週期組態。

    aws sagemaker create-studio-lifecycle-config \ --region region \ --studio-lifecycle-config-name my-studio-lcc \ --studio-lifecycle-config-content $LCC_CONTENT \ --studio-lifecycle-config-app-type KernelGateway

    記下傳回的新建立之生命週期組態的 ARN。需要此 ARN 才能將生命週期組態連接至您的應用程式。

步驟 2:將生命週期組態連接至您的網域、使用者設定檔或共用空間

若要連接生命週期組態,您的網域或使用者設定檔必須更新 UserSettings,而共用空間則更新 SpaceSettings。所有使用者都會繼承在網域層級關聯的生命週期組態指令碼。不過,在使用者設定檔層級關聯的指令碼範圍限定為特定使用者,而在共用空間層級關聯的指令碼則限定在共用空間。

以下範例示範如何建立連接生命週期組態的新使用者描述檔。您也可以分別使用 create-domaincreate-space 指令,建立連接生命週期組態的新網域或空間。

將上一步的生命週期組態 ARN 新增至適當應用程式類型的設定。例如,將其放置在使用者的 JupyterServerAppSettings 中。您可以傳遞生命週期組態清單,同時新增多個生命週期組態。當使用者使用 啟動 JupyterServer 應用程式時AWS CLI,他們可以傳遞要使用的生命週期組態,而不是預設值。使用者傳遞的生命週期組態必須屬於 JupyterServerAppSettings 中的生命週期組態清單。

# Create a new UserProfile aws sagemaker create-user-profile --domain-id domain-id \ --user-profile-name user-profile-name \ --region region \ --user-settings '{ "JupyterServerAppSettings": { "LifecycleConfigArns": [lifecycle-configuration-arn-list] } }'

以下範例示範如何更新現有的共用空間以連接生命週期組態。您也可以使用 update-domainupdate-user-profile 命令,更新已連接生命週期組態的現有網域或使用者設定檔。當您更新連接的生命週期組態清單時,您必須將所有生命週期組態作為清單的一部分傳遞。如果生命週期組態不在此清單中,則不會將其連接至應用程式。

aws sagemaker update-space --domain-id domain-id \ --space-name space-name \ --region region \ --space-settings '{ "JupyterServerAppSettings": { "LifecycleConfigArns": [lifecycle-configuration-arn-list] } }'

如需有關為資源設定預設生命週期組態的資訊,請參閱設定 Amazon SageMaker Studio Classic 的預設生命週期組態

步驟 3:使用生命週期組態

將生命週期組態連接到網域、使用者設定檔或空間後,使用者可以在使用 AWS CLI 啟動應用程式時選擇它。本節說明如何啟動具有連接生命週期組態的應用程式。如需有關在啟動 JupyterServer 應用程式之後變更預設生命週期組態的資訊,請參閱設定 Amazon SageMaker Studio Classic 的預設生命週期組態

使用 create-app 指令啟動所需的應用程式類型,並在 resource-spec 引數中指定生命週期組態 ARN。

  • 以下範例顯示如何使用相關聯的生命週期組態來建立 JupyterServer 應用程式。建立 JupyterServer 時,app-name 必須是 default。作為 resource-spec 參數一部分傳遞的生命週期組態 ARN,針對您的網域或使用者設定檔必須是在 UserSettings 中指定,而針對共用空間則是在 SpaceSettings 指定的生命週期組態 ARN 清單的一部分。

    aws sagemaker create-app --domain-id domain-id \ --region region \ --user-profile-name user-profile-name \ --app-type JupyterServer \ --resource-spec LifecycleConfigArn=lifecycle-configuration-arn \ --app-name default
  • 以下範例顯示如何使用相關聯的生命週期組態來建立 KernelGateway 應用程式。

    aws sagemaker create-app --domain-id domain-id \ --region region \ --user-profile-name user-profile-name \ --app-type KernelGateway \ --resource-spec LifecycleConfigArn=lifecycle-configuration-arn,SageMakerImageArn=sagemaker-image-arn,InstanceType=instance-type \ --app-name app-name