本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
重要
允許 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 建立 Amazon SageMaker 資源的自訂 IAM 政策也必須授予許可,才能將標籤新增至這些資源。需要將標籤新增至資源的許可,因為 Studio 和 Studio Classic 會自動標記他們建立的任何資源。如果 IAM 政策允許 Studio 和 Studio Classic 建立資源,但不允許標記,則嘗試建立資源時可能會發生「AccessDenied」錯誤。如需詳細資訊,請參閱提供標記 SageMaker AI 資源的許可。
AWS Amazon SageMaker AI 的 受管政策 提供建立 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 AI 網域Amazon SageMaker AI 網域概觀。
步驟 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
指定的生命週期組態 ARN 清單的一部分。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