

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

# 從 AWS CLI Amazon SageMaker Studio Classic 的 建立生命週期組態
<a name="studio-lcc-create-cli"></a>

**重要**  
允許 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 建立 Amazon SageMaker 資源的自訂 IAM 政策也必須授予許可，才能將標籤新增至這些資源。需要將標籤新增至資源的許可，因為 Studio 和 Studio Classic 會自動標記它們建立的任何資源。如果 IAM 政策允許 Studio 和 Studio Classic 建立資源，但不允許標記，則在嘗試建立資源時可能會發生 "AccessDenied" 錯誤。如需詳細資訊，請參閱[提供標記 SageMaker AI 資源的許可](security_iam_id-based-policy-examples.md#grant-tagging-permissions)。  
提供許可來建立 SageMaker 資源的 [AWS Amazon SageMaker AI 的 受管政策](security-iam-awsmanpol.md) 已包含建立這些資源時新增標籤的許可。

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用 Studio Classic 應用程式。如需使用已更新 Studio 體驗的資訊，請參閱 [Amazon SageMaker Studio](studio-updated.md)。  
Studio Classic 仍會針對現有工作負載進行維護，但無法再用於加入。您只能停止或刪除現有的 Studio Classic 應用程式，而且無法建立新的應用程式。建議您[將工作負載遷移至新的 Studio 體驗](studio-updated-migrate.md)。

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

## 先決條件
<a name="studio-lcc-create-cli-prerequisites"></a>

開始之前，請先完成以下先決條件：
+  AWS CLI 依照[安裝目前 AWS CLI 版本](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled)中的步驟更新 。
+ 從您的本機機器，執行 `aws configure` 並提供您的 AWS 憑證。如需 AWS 登入資料的資訊，請參閱[了解並取得您的 AWS 登入](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html)資料。
+ 遵循[Amazon SageMaker AI 網域概觀](gs-studio-onboard.md)中的步驟加入 SageMaker AI 網域。

## 步驟 1：建立生命週期組態
<a name="studio-lcc-create-cli-step1"></a>

下列程序示範如何建立 `Hello World` 生命週期組態指令碼。

**注意**  
每個指令碼最多可以有 **16,384** 個字元。

1. 從您的本機機器，藉由以下內容建立一個名為 `my-script.sh` 的檔案。

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. 將您的 `my-script.sh` 檔案轉換為 base64 格式。此要求可防止由於間距和換行編碼而發生的錯誤。

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. 建立與 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：將生命週期組態連接至您的網域、使用者設定檔或共用空間
<a name="studio-lcc-create-cli-step2"></a>

若要連接生命週期組態，您的網域或使用者設定檔必須更新 `UserSettings`，而共用空間則更新 `SpaceSettings`。所有使用者都會繼承在網域層級關聯的生命週期組態指令碼。不過，在使用者設定檔層級關聯的指令碼範圍限定為特定使用者，而在共用空間層級關聯的指令碼則限定在共用空間。

以下範例示範如何建立連接生命週期組態的新使用者描述檔。您也可以分別使用 [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html) 和 [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html) 指令，建立連接生命週期組態的新網域或空間。

將上一步的生命週期組態 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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) 或 [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html) 命令，更新已連接生命週期組態的現有網域或使用者設定檔。當您更新連接的生命週期組態清單時，您必須將所有生命週期組態作為清單的一部分傳遞。如果生命週期組態不在此清單中，則不會將其連接至應用程式。

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

如需有關為資源設定預設生命週期組態的資訊，請參閱[設定 Amazon SageMaker Studio Classic 的預設生命週期組態](studio-lcc-defaults.md)。

## 步驟 3：使用生命週期組態
<a name="studio-lcc-create-cli-step3"></a>

將生命週期組態連接到網域、使用者設定檔或空間後，使用者可以在使用 AWS CLI啟動應用程式時選擇它。本節說明如何啟動具有連接生命週期組態的應用程式。如需有關在啟動 JupyterServer 應用程式之後變更預設生命週期組態的資訊，請參閱[設定 Amazon SageMaker Studio Classic 的預設生命週期組態](studio-lcc-defaults.md)。

使用 `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
  ```