

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

# 在 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` 命令來確保掛斷信號被忽略，並且不會停止指令碼的執行。