

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

# 使用生命週期組態自訂 Amazon SageMaker Studio Classic
<a name="studio-lcc"></a>

**重要**  
自 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)。

Amazon SageMaker Studio Classic 會在重要生命週期事件期間觸發生命週期組態 Shell 指令碼，例如啟動新的 Studio Classic 筆記本。您可以使用生命週期組態，為您的 Studio Classic 環境自動化自訂。此自訂功能包含安裝自訂套件、設定筆記本擴充功能、預先載入資料集，以及設定來源碼儲存庫。

使用生命週期組態提供您彈性和控制，來設定 Studio Classic 以滿足您的特定需求。例如，您可以使用自訂的容器映像搭配生命週期組態指令碼來修改您的環境。首先，建立一組最少的基本容器映像，然後在這些映像中安裝最常用的套件和程式庫。在完成了您的映像之後，請使用生命週期組態來安裝特定使用案例的其他套件。這可讓您靈活地根據需求修改整個資料科學和機器學習團隊的環境。

使用者只能選取他們有權存取的生命週期組態指令碼。雖然您可以授予多個生命週期組態指令碼的存取權，但您也可以設定資源的預設生命週期組態指令碼。根據為其設定預設生命週期組態的資源，預設值會自動執行，或是顯示的第一個選項。

如需範例生命週期組態指令碼，請參閱 [Studio Classic 生命週期組態範例 GitHub 儲存庫](https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples)。如需實作生命週期組態的部落格，請參閱[使用生命週期組態自訂 Amazon SageMaker Studio Classic](https://aws.amazon.com/blogs/machine-learning/customize-amazon-sagemaker-studio-using-lifecycle-configurations/)。

**注意**  
每個指令碼限定最多只能包含 **16384 個字元**。

**Topics**
+ [建立生命週期組態並將其與 Amazon SageMaker Studio Classic 建立關聯](studio-lcc-create.md)
+ [設定 Amazon SageMaker Studio Classic 的預設生命週期組態](studio-lcc-defaults.md)
+ [在 Amazon SageMaker Studio Classic 中偵錯生命週期組態](studio-lcc-debug.md)
+ [在 Amazon SageMaker Studio Classic 中更新和分離生命週期組態](studio-lcc-delete.md)

# 建立生命週期組態並將其與 Amazon SageMaker Studio Classic 建立關聯
<a name="studio-lcc-create"></a>

**重要**  
自 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)。

Amazon SageMaker AI 提供互動式應用程式，可啟用 Studio Classic 的視覺化介面、程式碼撰寫和執行體驗。本系列說明如何建立生命週期組態，並將其與 SageMaker AI 網域建立關聯。

應用程式類型可以是 `JupyterServer` 或 `KernelGateway`。
+ **`JupyterServer` 應用程式：**此應用程式類型可讓您存取 Studio Classic 的視覺化介面。Studio Classic 中的每個使用者和共用空間都會取得自己的 JupyterServer 應用程式。
+ **`KernelGateway` 應用程式：**此應用程式類型可讓您存取 Studio Classic 筆記本和終端機的程式碼執行環境和核心。如需更多資訊，請參閱 [Jupyter 核心閘道](https://jupyter-kernel-gateway.readthedocs.io/en/latest/)。

如需 Studio Classic 架構和 Studio 應用程式的詳細資訊，請參閱[使用 Amazon SageMaker Studio Classic 筆記本](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks.html)。

**Topics**
+ [從 AWS CLI Amazon SageMaker Studio Classic 的 建立生命週期組態](studio-lcc-create-cli.md)
+ [從 Amazon SageMaker Studio Classic 的 SageMaker AI 主控台建立生命週期組態](studio-lcc-create-console.md)

# 從 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
  ```

# 從 Amazon SageMaker Studio Classic 的 SageMaker AI 主控台建立生命週期組態
<a name="studio-lcc-create-console"></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)。

以下主題說明如何從 Amazon SageMaker AI 主控台建立生命週期組態，以自動自訂您的 Studio Classic 環境。

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

開始本教學課程之前，你必須先完成下列先決條件：
+ 加入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[加入 Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html)。

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

您可以從 Amazon SageMaker AI 主控台輸入指令碼來建立生命週期組態。

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

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

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左側導覽窗格中，選擇**管理員組態**。

1. 在**管理員組態**下，選擇**生命週期組態**。

1. 選擇 **Studio** 索引標籤。

1. 選擇**建立組態**。

1. 在**選取組態類型**下，選取應連接生命週期組態的應用程式類型。如需選取要連接生命週期組態之應用程式的更多資訊，請參閱[設定 Amazon SageMaker Studio Classic 的預設生命週期組態](studio-lcc-defaults.md)。

1. 選擇**下一步**。

1. 在名為**組態設定**的區段中，輸入生命週期組態的名稱。

1. 在**指令碼**區段中，輸入下列內容。

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

1. (選擇性) 建立生命週期組態的標籤。

1. 選擇**提交**。

## 步驟 2：將生命週期組態連接至網域或使用者設定檔
<a name="studio-lcc-create-console-step2"></a>

所有使用者都會繼承與網域層級相關聯的生命週期組態指令碼。但是，在使用者設定檔層級關聯的指令碼範圍是特定使用者。

您可以將多個生命週期組態連接至網域或使用者設定檔，以供 JupyterServer 和 KernelGateway 應用程式使用。

**注意**  
若要將生命週期組態連接至共用空間，您必須使用 AWS CLI。如需詳細資訊，請參閱[從 AWS CLI Amazon SageMaker Studio Classic 的 建立生命週期組態](studio-lcc-create-cli.md)。

下列各節說明如何將生命週期組態連接至網域或使用者設定檔。

### 連接至網域
<a name="studio-lcc-create-console-step2-domain"></a>

以下說明如何從 SageMaker AI 主控台將生命週期組態連接至您的現有網域。

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左側導覽窗格中，選擇**管理員組態**。

1. 在**管理員組態**下，選擇**網域**。

1. 從網域清單中，選取要連接生命週期組態的網域。

1. 從**網域詳細資料**中，選擇**環境**索引標籤。

1. 在**個人 Studio 應用程式的生命週期組態**下，選擇**連接**。

1. 在**來源**下，選擇**現有的組態**。

1. 在 **Studio 生命週期組態**下，選取您在上一個步驟中建立的生命週期組態。

1. 選取**連接至網域**。

### 連接至您的使用者設定檔
<a name="studio-lcc-create-console-step2-userprofile"></a>

以下說明如何將生命週期組態連接至您現有的使用者設定檔。

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左側導覽窗格中，選擇**管理員組態**。

1. 在**管理員組態**下，選擇**網域**。

1. 從網域清單中，選取包含要連接生命週期組態之使用者設定檔的網域。

1. 在**使用者設定檔**下，選取使用者設定檔。

1. 在**使用者詳細資訊**頁面，選擇**編輯**。

1. 在左側導覽選擇 **Studio 設定**。

1. 在**連接至使用者的生命週期組態**下，選擇**連接**。

1. 在**來源**下，選擇**現有的組態**。

1. 在 **Studio 生命週期**組態下，選取您在上一個步驟中建立的生命週期組態。

1. 選擇**連接至使用者設定檔**。

## 步驟 3：使用生命週期組態啟動應用程式
<a name="studio-lcc-create-console-step3"></a>

將生命週期組態連接至網域或使用者設定檔後，您可以啟動具有該連接生命週期組態的應用程式。根據應用程式類型，選擇要啟動的生命週期組態。
+ **JupyterServer**：從主控台啟動 JupyterServer 應用程式時，SageMaker AI 一律會使用預設生命週期組態。從主控台啟動時，您無法使用不同的生命週期組態。如需有關在啟動 JupyterServer 應用程式之後變更預設生命週期組態的資訊，請參閱[設定 Amazon SageMaker Studio Classic 的預設生命週期組態](studio-lcc-defaults.md)。

  若要選取不同的連接生命週期組態，您必須使用 AWS CLI。如需從 啟動具有連接生命週期組態的 JupyterServer 應用程式的詳細資訊 AWS CLI，請參閱 [從 AWS CLI Amazon SageMaker Studio Classic 的 建立生命週期組態](studio-lcc-create-cli.md)。
+ **KernelGateway**：您可以在使用 Studio Classic 啟動器啟動 KernelGateway 應用程式時，選取任何連接的生命週期組態。

下列程序說明如何從 SageMaker AI 主控台透過連接的生命週期組態啟動 KernelGateway 應用程式。

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 啟動 Studio Classic。如需詳細資訊，請參閱[啟動 Amazon SageMaker Studio Classic](studio-launch.md)。

1. 在 Studio Classic UI 中，開啟 Studio Classic 啟動器。如需詳細資訊，請參閱[使用 Amazon SageMaker Studio Classic 啟動器](studio-launcher.md)。

1. 在 Studio Classic 啟動器中，導覽至**筆記本和運算資源**區段。

1. 按一下**變更環境**按鈕。

1. 在**變更環境**對話方塊中，使用下拉式功能表選取**映像**、**核心**、**執行個體類型**和**啟動指令碼**。如果沒有預設生命週期組態，**啟動指令碼**值會預設為 `No script`。否則，**啟動指令碼**值就是您的預設生命週期組態。選取生命週期組態之後，就可以檢視整個命令檔。

1. 按一下**選取**。

1. 回到啟動器，按一下**建立筆記本**，以使用您選取的映像檔和生命週期組態啟動新的筆記本核心。

## 步驟 4：檢視生命週期組態的日誌
<a name="studio-lcc-create-console-step4"></a>

您可以在生命週期組態連接至網域或使用者設定檔後，檢視其記錄。

1. 首先，為您的 AWS Identity and Access Management (IAM) 角色提供 CloudWatch 的存取權。為下列日誌群組和日誌串流新增讀取許可。
   + **日誌群組：**`/aws/sagemaker/studio`
   + **日誌串流：**`domain/user-profile/app-type/app-name/LifecycleConfigOnStart`

    如需有關新增許可的資訊，請參閱[啟用來自特定 AWS 服務的日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html)記錄。

1. 從 Studio Classic 內，導覽到**執行中終端機和核心**圖示 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png)) 以監控您的生命週期組態。

1. 從運作中的應用程式清單中選取應用程式。具有連接生命週期組態的應用程式會連接指示器圖示 ![\[Code brackets symbol representing programming or markup languages.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/studio-lcc-indicator-icon.png)。

1. 選取應用程式的指示器圖示。這會開啟列出生命週期組態的新面板。

1. 從新面板中選取 `View logs`。這會開啟顯示記錄的新索引標籤。

# 設定 Amazon SageMaker Studio Classic 的預設生命週期組態
<a name="studio-lcc-defaults"></a>

**重要**  
自 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)。

雖然您可以將多個生命週期組態指令碼連接至單一資源，但您只能為每個 JupyterServer 或 KernelGateway 應用程式設定一個預設生命週期組態。預設生命週期組態的行為取決於是針對 JupyterServer 還是 KernelGateway 應用程式設定。
+ **JupyterServer 應用程式：**當設定為 JupyterServer 應用程式的預設生命週期組態指令碼時，生命週期組態指令碼會在使用者第一次登入 Studio Classic 或重新啟動 Studio Classic 時自動執行。使用此預設生命週期組態以自動執行 Studio Classic 開發人員環境的一次性設定動作，例如安裝筆記本延伸模組或設定 GitHub 儲存庫。如需這方面的範例，請參閱[使用生命週期組態自訂 Amazon SageMaker Studio](https://aws.amazon.com/blogs/machine-learning/customize-amazon-sagemaker-studio-using-lifecycle-configurations/)。
+ **KernelGateway 應用程式：**當設定為 KernelGateway 應用程式的預設生命週期組態指令碼時，預設會在 Studio Classic 啟動器中選取生命週期組態。使用者可以在選取預設指令碼的情況下啟動筆記本或終端機，也可以從生命週期組態清單中選取不同的筆記本或終端機。

SageMaker AI 支援為下列資源設定預設生命週期組態：
+ 網域
+ 使用者設定檔
+ 共用空間

雖然網域和使用者設定檔支援從 Amazon SageMaker AI 主控台和 設定預設生命週期組態 AWS Command Line Interface，共用空間僅支援從 設定預設生命週期組態 AWS CLI。

建立新資源或更新現有資源時，您可以將生命週期組態設定為預設值。下列主題示範如何使用 SageMaker AI 主控台 和 設定預設生命週期組態 AWS CLI。

## 預設的生命週期組態
<a name="studio-lcc-defaults-inheritance"></a>

在*網域*層級設定的預設生命週期組態會由所有使用者和共用空間繼承。在*使用者*和*共用空間*層級設定的預設生命週期組態僅限於該使用者或共用空間。使用者和空間預設值會覆寫在網域層級設定的預設值。

網域的預設 KernelGateway 生命週期組態設定會套用至網域中啟動的所有 KernelGateway 應用程式。除非使用者從 Studio Classic 啟動器中顯示的清單中選取不同的生命週期組態，否則會使用預設的生命週期組態。如果使用者已選 `No Script`，預設指令碼也會執行。如需選取 AMI 的更多資訊，請參閱[步驟 3：使用生命週期組態啟動應用程式](studio-lcc-create-console.md#studio-lcc-create-console-step3)。

**Topics**
+ [預設的生命週期組態](#studio-lcc-defaults-inheritance)
+ [從 Amazon SageMaker Studio Classic AWS CLI 的 設定預設值](studio-lcc-defaults-cli.md)
+ [從 Amazon SageMaker Studio Classic 的 SageMaker AI 主控台設定預設值](studio-lcc-defaults-console.md)

# 從 Amazon SageMaker Studio Classic AWS CLI 的 設定預設值
<a name="studio-lcc-defaults-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 為下列資源設定預設生命週期組態指令碼：
+ 網域
+ 使用者設定檔
+ 共用空間

以下各節說明如何從 AWS CLI設定預設生命週期組態指令碼。

**Topics**
+ [先決條件](#studio-lcc-defaults-cli-prereq)
+ [建立新資源時設定預設生命週期組態](#studio-lcc-defaults-cli-new)
+ [為現有資源設定預設生命週期組態](#studio-lcc-defaults-cli-existing)

## 先決條件
<a name="studio-lcc-defaults-cli-prereq"></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 網域。
+ 依照[建立生命週期組態並將其與 Amazon SageMaker Studio Classic 建立關聯](studio-lcc-create.md)中的步驟在建立生命週期組態。

## 建立新資源時設定預設生命週期組態
<a name="studio-lcc-defaults-cli-new"></a>

若要在建立新網域、使用者設定檔或空間時設定預設生命週期組態，請傳遞先前建立生命週期組態的 ARN，做為下列其中一個 AWS CLI 命令的一部分：
+ [create-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-user-profile.html)
+ [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/opensearch/create-domain.html)
+ [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html)

您必須在 KernelGateway 或 JupyterServer 預設設定中傳遞下列值的生命週期組態 ARN：
+ `DefaultResourceSpec`：`LifecycleConfigArn` - 這指定了應用程式類型的預設生命週期組態。
+ `LifecycleConfigArns` - 這是連接到應用程式類型的所有生命週期組態的清單。預設生命週期組態也必須是此清單的一部分。

例如，下列 API 呼叫會建立具有預設生命週期組態的新使用者設定檔。

```
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"KernelGatewayAppSettings": {
    "DefaultResourceSpec": { 
            "InstanceType": "ml.t3.medium",
            "LifecycleConfigArn": "lifecycle-configuration-arn"
         },
    "LifecycleConfigArns": [lifecycle-configuration-arn-list]
  }
}'
```

## 為現有資源設定預設生命週期組態
<a name="studio-lcc-defaults-cli-existing"></a>

若要設定或更新現有資源的預設生命週期組態，請傳遞先前建立生命週期組態的 ARN，做為下列其中一個 AWS CLI 命令的一部分：
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

您必須在 KernelGateway 或 JupyterServer 預設設定中傳遞下列值的生命週期組態 ARN：
+ `DefaultResourceSpec`：`LifecycleConfigArn` - 這指定了應用程式類型的預設生命週期組態。
+ `LifecycleConfigArns` - 這是連接到應用程式類型的所有生命週期組態的清單。預設生命週期組態也必須是此清單的一部分。

例如，下列 API 呼叫會以預設的生命週期組態更新使用者設定檔。

```
aws sagemaker update-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"KernelGatewayAppSettings": {
    "DefaultResourceSpec": {
            "InstanceType": "ml.t3.medium",
            "LifecycleConfigArn": "lifecycle-configuration-arn"
         },
    "LifecycleConfigArns": [lifecycle-configuration-arn-list]
  }
}'
```

下列 API 呼叫會更新網域，以設定新的預設生命週期組態。

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"JupyterServerAppSettings": {
    "DefaultResourceSpec": {
            "InstanceType": "system",
            "LifecycleConfigArn": "lifecycle-configuration-arn"
         },
    "LifecycleConfigArns": [lifecycle-configuration-arn-list]
  }
}'
```

# 從 Amazon SageMaker Studio Classic 的 SageMaker AI 主控台設定預設值
<a name="studio-lcc-defaults-console"></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)。

您可以從 SageMaker AI 主控台為下列資源設定預設生命週期組態指令碼。
+ 網域
+ 使用者設定檔

您無法從 SageMaker AI 主控台為共用空間設定預設生命週期組態指令碼。若要取得有關設定共用空間預設值的資訊，請參閱[從 Amazon SageMaker Studio Classic AWS CLI 的 設定預設值](studio-lcc-defaults-cli.md)。

以下各節概述如何從 SageMaker AI 主控台設定預設生命週期組態指令碼。

**Topics**
+ [先決條件](#studio-lcc-defaults-cli-prerequisites)
+ [設定網域的預設生命週期組態](#studio-lcc-defaults-cli-domain)
+ [設定使用者設定檔的預設生命週期組態](#studio-lcc-defaults-cli-user-profile)

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

開始之前，請先完成以下先決條件：
+ 遵循[Amazon SageMaker AI 網域概觀](gs-studio-onboard.md)中的步驟加入 SageMaker AI 網域。
+ 依照[建立生命週期組態並將其與 Amazon SageMaker Studio Classic 建立關聯](studio-lcc-create.md)中的步驟在建立生命週期組態。

## 設定網域的預設生命週期組態
<a name="studio-lcc-defaults-cli-domain"></a>

下列程序顯示如何從 SageMaker AI 主控台設定網域的預設生命週期組態。

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 從網域清單中，選取網域名稱，以設定其預設生命週期組態。

1. 從**網域詳細資料**頁面，選擇**環境**索引標籤。

1. 在**個人 Studio 應用程式的生命週期設**定下，選取您要設定為網域預設值的生命週期組態。您可以為 JupyterServer 和 KernelGateway 應用程式設定不同的預設值。

1. 選擇**設定為預設值**。這會開啟快顯視窗，其中列出 JupyterServer 和 KernelGateway 應用程式的目前預設值。

1. 選擇**設定為預設值**，將生命週期組態設定為其各自應用程式類型的預設值。

## 設定使用者設定檔的預設生命週期組態
<a name="studio-lcc-defaults-cli-user-profile"></a>

下列程序顯示如何從 SageMaker AI 主控台為使用者設定檔設定預設生命週期組態。

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 從網域清單中，選取包含您要設定其預設生命週期組態之使用者設定檔的網域名稱。

1. 從**網域詳細資料**頁面中，選擇**使用者設定檔**索引標籤。

1. 選取要為其設定預設生命週期組態的使用者設定檔名稱。此動作會開啟**使用者詳細資訊**頁面。

1. 在使用者**使用者詳細資訊**頁面，選擇**編輯使用者**。這會開啟**編輯使用者設定檔**頁面。

1. 在**編輯使用者設定檔**頁面中，選擇**步驟 2 Studio 設定**。

1. 在**連接至使用者的生命週期組態**下，選取您要設定為使用者設定檔預設的生命週期組態。您可以為 JupyterServer 和 KernelGateway 應用程式設定不同的預設值。

1. 選擇**設定為預設值**。這會開啟快顯視窗，其中列出 JupyterServer 和 KernelGateway 應用程式的目前預設值。

1. 選擇**設定為預設值**，將生命週期組態設定為其各自應用程式類型的預設值。

# 在 Amazon SageMaker Studio Classic 中偵錯生命週期組態
<a name="studio-lcc-debug"></a>

**重要**  
自 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)。

下列主題示範如何取得生命週期組態的相關資訊和偵錯。

**Topics**
+ [從 CloudWatch Logs 驗證生命週期組態程序](#studio-lcc-debug-logs)
+ [JupyterServer 應用程式失敗](#studio-lcc-debug-jupyterserver)
+ [KernelGateway 應用程式失敗](#studio-lcc-debug-kernel)
+ [生命週期組態逾時](#studio-lcc-debug-timeout)

## 從 CloudWatch Logs 驗證生命週期組態程序
<a name="studio-lcc-debug-logs"></a>

生命週期組態僅記錄 `STDOUT` 和 `STDERR`。

`STDOUT` 是 bash 指令碼的預設輸出。您可以寫入 `STDERR`，只要把 `>&2` 附加到 bash 命令的末端。例如 `echo 'hello'>&2`。

生命週期組態的日誌會使用 Amazon CloudWatch AWS 帳戶 發佈至您的 。您可以在 CloudWatch 主控台的日誌串流 `/aws/sagemaker/studio` 中找到這些日誌。

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 從左側選擇**日誌**。從下拉式清單中，選擇**日誌群組**。

1. 在**日誌群組**頁面上，搜尋 `aws/sagemaker/studio`。

1. 選取日誌群組。

1. 在**日誌群組詳細資訊**頁面上，選擇**日誌串流**索引標籤。

1. 若要尋找特定應用程式的日誌，請使用下列格式搜尋日誌串流：

   ```
   domain-id/space-name/app-type/default/LifecycleConfigOnStart
   ```

   例如，若要尋找網域 `d-m85lcu8vbqmz`、空間名稱 `i-sonic-js` 和應用程式類型 `JupyterLab` 的生命週期組態日誌，請使用下列搜尋字串：

   ```
   d-m85lcu8vbqmz/i-sonic-js/JupyterLab/default/LifecycleConfigOnStart
   ```

## JupyterServer 應用程式失敗
<a name="studio-lcc-debug-jupyterserver"></a>

如果您的 JupyterServer 應用程式因為連接的生命週期組態發生問題而當機，Studio Classic 會在 Studio Classic 啟動畫面上顯示下列錯誤訊息。

```
Failed to create SageMaker Studio due to start-up script failure
```

選取 `View script logs` 連結以檢視 JupyterServer 應用程式的 CloudWatch Logs。

在您的網域、使用者設定檔或共用空間的 `DefaultResourceSpec` 中指定錯誤的生命週期組態的情況下，即使 Studio Classic 重新啟動後仍會繼續使用該生命週期組態。

若要解決此錯誤，請依照 [設定 Amazon SageMaker Studio Classic 的預設生命週期組態](studio-lcc-defaults.md) 中的步驟從 `DefaultResourceSpec` 移除生命週期組態指令碼，或選取其他指令碼作為預設值。然後啟動新的 JupyterServer 應用程式。

## KernelGateway 應用程式失敗
<a name="studio-lcc-debug-kernel"></a>

如果您的 KernelGateway 應用程式因連接的生命週期組態發生問題而當機，Studio Classic 會在您的 Studio Classic 筆記本中顯示錯誤訊息。

選擇 `View script logs` 檢視 KernelGateway 應用程式的 CloudWatch Logs。

在這種情況下，您的生命週期組態是在啟動新的 Studio Classic 筆記本時在 Studio Classic 啟動器中指定。

若要解決此錯誤，請使用 Studio Classic 啟動器選取不同的生命週期組態，或選取 `No script`。

**注意**  
在 `DefaultResourceSpec` 中指定的預設 KernelGateway 生命週期組態會套用至網域、使用者設定檔或共用空間中所有 KernelGateway 映像，除非使用者從 Studio Classic 啟動器顯示的清單中選取不同的指令碼。如果使用者選擇 `No Script`，預設指令碼也會執行。如需選擇指令碼的更多資訊，請參閱[步驟 3：使用生命週期組態啟動應用程式](studio-lcc-create-console.md#studio-lcc-create-console-step3)。

## 生命週期組態逾時
<a name="studio-lcc-debug-timeout"></a>

生命週期組態逾時限制為 5 分鐘。如果生命週期組態指令碼需要超過 5 分鐘的時間來執行，則 Studio Classic 會引發錯誤。

若要解決此錯誤，請確定您的生命週期組態指令碼在 5 分鐘內完成。

為了協助縮短指令碼的執行時間，請嘗試下列方法：
+ 削減必要步驟。例如，限制在哪些 conda 環境中安裝大型套件。
+ 在平行程序中執行任務。
+ 使用指令碼中的 `nohup` 命令來確保掛斷信號被忽略，並且不會停止指令碼的執行。

# 在 Amazon SageMaker Studio Classic 中更新和分離生命週期組態
<a name="studio-lcc-delete"></a>

**重要**  
自 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)。

生命週期組態指令碼建立後便無法變更。若要更新指令碼，您必須建立新的生命週期組態指令碼，並將其連接至個別的網域、使用者設定檔或共用空間。如需建立和管理生命週期組態的更多資訊，請參閱[建立生命週期組態並將其與 Amazon SageMaker Studio Classic 建立關聯](studio-lcc-create.md)。

下列主題說明如何使用 AWS CLI 和 SageMaker AI 主控台分離生命週期組態。

**Topics**
+ [先決條件](#studio-lcc-delete-pre)
+ [使用 分離 AWS CLI](#studio-lcc-delete-cli)

## 先決條件
<a name="studio-lcc-delete-pre"></a>

分離生命週期組態之前，您必須完成下列先決條件。
+ 若要成功分離生命週期組態，沒有執行中的應用程式可以使用生命週期組態。您必須先關閉運作中的應用程式，如[關閉並更新 Amazon SageMaker Studio Classic 和應用程式](studio-tasks-update.md)中所示。

## 使用 分離 AWS CLI
<a name="studio-lcc-delete-cli"></a>

若要使用 分離生命週期組態 AWS CLI，請從連接至資源的生命週期組態清單中移除所需的生命週期組態，並將清單做為個別命令的一部分傳遞：
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

例如，以下命令會移除連接至網域的 KernelGateway 的所有生命週期組態。

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"KernelGatewayAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```