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

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

從 AWS CLI建立生命週期組態

重要

允許 Amazon SageMaker 工作室或 Amazon 工作 SageMaker 室經典版創建 Amazon SageMaker 資源的自定義 IAM 政策還必須授予許可才能向這些資源添加標籤。需要向資源添加標籤的權限,因為 Studio 和 Studio 經典版會自動標記它們創建的任何資源。如果 IAM 政策允許 Studio 和 Studio 經典版建立資源,但不允許標記,則在嘗試建立資源時可能會發生 AccessDenied "" 錯誤。如需詳細資訊,請參閱 提供標記資 SageMaker源的權限

AWS Amazon 的受管政策 SageMaker授予建立 SageMaker 資源的權限,已包含在建立這些資源時新增標籤的權限。

重要

截至 2023 年 11 月 30 日,以前的 Amazon SageMaker 工作室體驗現在被命名為 Amazon SageMaker 工作室經典。下面的部分是特定於使用 Studio 傳統版應用程序。如需使用更新後的 Studio 體驗的相關資訊,請參閱Amazon SageMaker 一室

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

必要條件

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

步驟 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 傳統版。下列命令會建立在您啟動關聯 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 指定的生命週期組態 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