本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從建立生命週期組態 AWS CLI
重要
允許 Amazon SageMaker Studio 或 Amazon 工作室經典版建立 Amazon SageMaker SageMaker 資源的自訂IAM政策還必須授予許可,才能將標籤新增到這些資源。需要向資源添加標籤的權限,因為 Studio 和 Studio 經典版會自動標記它們創建的任何資源。如果IAM原則允許 Studio 和 Studio 典型版建立資源,但不允許標記,則在嘗試建立資源時可能會發生 AccessDenied "" 錯誤。如需詳細資訊,請參閱提供標記資 SageMaker源的權限。
AWS Amazon 的受管政策 SageMaker授予建立 SageMaker 資源的權限,已包含在建立這些資源時新增標籤的權限。
重要
截至 2023 年 11 月 30 日,以前的 Amazon SageMaker 工作室體驗現在被命名為 Amazon SageMaker 工作室經典。下面的部分是特定於使用 Studio 傳統版應用程序。如需使用更新後的 Studio 體驗的相關資訊,請參閱Amazon SageMaker 一室。
下列主題說明如何使用 AWS CLI 為您的工作室經典環境自動化自訂。
必要條件
開始之前,請先完成以下先決條件:
-
更新 AWS CLI 按照安裝當前的步驟進行操作 AWS CLI 版本。
-
從您的本地計算機上運行
aws configure
並提供 AWS 認證。如需相關資訊 AWS 認證,請參閱瞭解並取得您的 AWS 認證。 -
按照中的步驟進入 SageMaker 網域Amazon SageMaker 域名概述。
步驟 1:建立生命週期組態
下列程序示範如何建立 Hello World
生命週期組態指令碼。
注意
每個指令碼最多可以有 16,384 個字元。
-
從您的本機機器,藉由以下內容建立一個名為
my-script.sh
的檔案。#!/bin/bash set -eux echo 'Hello World!'
-
將您的
my-script.sh
檔案轉換為 base64 格式。此要求可防止由於間距和換行編碼而發生的錯誤。LCC_CONTENT=`openssl base64 -A -in my-script.sh`
-
建立生命週期組態以搭配 Studio 傳統版使用。下列命令會建立在您啟動關聯
KernelGateway
應用程式時執行的生命週期組態。aws sagemaker create-studio-lifecycle-config \ --region
region
\ --studio-lifecycle-config-namemy-studio-lcc
\ --studio-lifecycle-config-content $LCC_CONTENT \ --studio-lifecycle-config-app-type KernelGateway請注意傳回ARN的新建立生命週期組態。這ARN是將生命週期配置附加到您的應用程序所必需的。
步驟 2:將生命週期組態連接至您的網域、使用者設定檔或共用空間
若要連接生命週期組態,您的網域或使用者設定檔必須更新 UserSettings
,而共用空間則更新 SpaceSettings
。所有使用者都會繼承在網域層級關聯的生命週期組態指令碼。不過,在使用者設定檔層級關聯的指令碼範圍限定為特定使用者,而在共用空間層級關聯的指令碼則限定在共用空間。
以下範例示範如何建立連接生命週期組態的新使用者描述檔。您也可以分別使用 create-domain
將上一步的生命週期組態新增至適當應用程式類型的設定ARN中。例如,將其放置在使用者的 JupyterServerAppSettings
中。您可以傳遞生命週期組態清單,同時新增多個生命週期組態。當使用者啟動 JupyterServer 應用程式時 AWS CLI,他們可以傳遞生命週期配置來使用,而不是默認設置。使用者傳遞的生命週期組態必須屬於 JupyterServerAppSettings
中的生命週期組態清單。
# Create a new UserProfile aws sagemaker create-user-profile --domain-id
domain-id
\ --user-profile-nameuser-profile-name
\ --regionregion
\ --user-settings '{ "JupyterServerAppSettings": { "LifecycleConfigArns": [lifecycle-configuration-arn-list
] } }'
以下範例示範如何更新現有的共用空間以連接生命週期組態。您也可以使用 update domain 或命令,以附加生命週期組態來更新現有的網域
aws sagemaker update-space --domain-id
domain-id
\ --space-namespace-name
\ --regionregion
\ --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傳遞的生命週期組態必須是針對您的網域或使用者設定檔ARNs指定UserSettings
的生命週期組態清單的一部分,或共SpaceSettings
用空間。aws sagemaker create-app --domain-id
domain-id
\ --regionregion
\ --user-profile-nameuser-profile-name
\ --app-type JupyterServer \ --resource-spec LifecycleConfigArn=lifecycle-configuration-arn
\ --app-name default -
以下範例顯示如何使用相關聯的生命週期組態來建立
KernelGateway
應用程式。aws sagemaker create-app --domain-id
domain-id
\ --regionregion
\ --user-profile-nameuser-profile-name
\ --app-type KernelGateway \ --resource-spec LifecycleConfigArn=lifecycle-configuration-arn
,SageMakerImageArn=sagemaker-image-arn
,InstanceType=instance-type
\ --app-nameapp-name