從 AWS CLI建立生命週期組態 - Amazon SageMaker

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

從 AWS CLI建立生命週期組態

重要

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

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

重要

截至 2023 年 11 月 30 日,先前的 Amazon SageMaker Studio 體驗現在已命名為 Amazon SageMaker Studio Classic。以下章節是使用 Studio Classic 應用程式的特定部分。如需使用更新 Studio 體驗的相關資訊,請參閱 Amazon SageMaker 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-domain 或 命令,更新具有附加生命週期組態的現有網域或使用者設定檔。 update-user-profile當您更新連接的生命週期組態清單時,您必須將所有生命週期組態作為清單的一部分傳遞。如果生命週期組態不在此清單中,則不會將其連接至應用程式。

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

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

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

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

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

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

    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