本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 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 環境的自訂。
必要條件
開始之前,請先完成以下先決條件:
-
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 Classic 搭配使用的生命週期組態。下列命令會建立在您啟動關聯
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傳遞的生命週期組態,必須是 中UserSettings
為網域或使用者設定檔或SpaceSettings
共用空間ARNs指定的生命週期組態清單的一部分。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