

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

# 自帶映像 (BYOI)
<a name="studio-updated-byoi"></a>

映像是一種檔案，可識別執行應用程式所需的核心、語言套件和其他相依性。其中包括：
+ 程式設計語言 (例如 Python 或 R)
+ 核心
+ 程式庫和套件
+ 其他必要的軟體

Amazon SageMaker Distribution (`sagemaker-distribution`) 是一組 Docker 映像，其中包括機器學習、資料科學和視覺化的熱門架構和套件。如需詳細資訊，請參閱[SageMaker Studio 映像支援政策](sagemaker-distribution.md)。

如果您需要不同的功能，則可以自帶映像 (BYOI)。若是以下情況，您可能想要建立自訂映像：
+ 您需要特定版本的程式設計語言或程式庫
+ 您想要包括自訂工具或套件
+ 您正在使用標準映像中無法使用的特殊化軟體

## 重要術語
<a name="studio-updated-byoi-basics"></a>

下節定義自帶映像以與 SageMaker AI 搭配使用的重要術語。
+ **Dockerfile：**文字型文件，其中具有建置 Docker 映像檔的指示。這可識別 Docker 映像檔的語言套件和其他相依性。
+ **Docker 映像檔：**從 Dockerfile 建置的一組套裝軟體和相依性。
+ **SageMaker AI 映像存放區：**在 SageMaker AI 中儲存您的自訂映像。

**Topics**
+ [重要術語](#studio-updated-byoi-basics)
+ [自訂映像規格](studio-updated-byoi-specs.md)
+ [如何自帶映像](studio-updated-byoi-how-to.md)
+ [在 Studio 中啟動自訂映像](studio-updated-byoi-how-to-launch.md)
+ [檢視您的自訂映像詳細資訊](studio-updated-byoi-view-images.md)
+ [使用 SOCI 加速容器啟動](soci-indexing.md)
+ [分離和清除自訂映像資源](studio-updated-byoi-how-to-detach-from-domain.md)

# 自訂映像規格
<a name="studio-updated-byoi-specs"></a>

您在 Dockerfile 中指定的映像必須符合以下各節中的規格，才能成功建立映像。

**Topics**
+ [執行映像](#studio-updated-byoi-specs-run)
+ [使用者和檔案系統的規格](#studio-updated-byoi-specs-user-and-filesystem)
+ [應用程式的運作狀態檢查和 URL](#studio-updated-byoi-specs-app-healthcheck)
+ [Dockerfile 範例](#studio-updated-byoi-specs-dockerfile-templates)

## 執行映像
<a name="studio-updated-byoi-specs-run"></a>

您可以透過更新 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html) 來進行下列組態。如需範例，請參閱 [更新容器組態](studio-updated-byoi-how-to-container-configuration.md)。
+ `Entrypoint` - 您可以設定在執行時期傳遞至容器的 `ContainerEntrypoint` 和 `ContainerArguments`。建議您使用 `ContainerConfig` 設定進入點。如需範例，請參閱上述連結。
+ `EnvVariables` - 使用 Studio 時，您可以定義容器的自訂 `ContainerEnvironment` 變數。您可以選擇性地使用 `ContainerConfig` 更新環境變數。如需範例，請參閱上述連結。

  SageMaker AI 特定環境變數優先使用，並會覆寫名稱相同的任何變數。例如，SageMaker AI 會自動提供字首為 `AWS_` 和 `SAGEMAKER_` 的環境變數，以確保與服務 AWS 和 SageMaker AI 功能適當整合。以下是幾個範例 SageMaker AI 特定環境變數：
  + `AWS_ACCOUNT_ID`
  + `AWS_REGION`
  + `AWS_DEFAULT_REGION`
  + `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`
  + `SAGEMAKER_SPACE_NAME`
  + `SAGEMAKER_APP_TYPE`

## 使用者和檔案系統的規格
<a name="studio-updated-byoi-specs-user-and-filesystem"></a>
+ `WorkingDirectory` - 您空間的 Amazon EBS 磁碟區掛載在路徑 `/home/sagemaker-user` 上。您無法變更掛載路徑。使用 `WORKDIR` 指示將映像的工作目錄設定為 `/home/sagemaker-user` 內的資料夾。
+ `UID` - Docker 容器的使用者 ID。UID=1000 是支援的值。您可以將 sudo 存取權新增給使用者。ID 會重新對應，以防止容器中執行的程序具有比所需更多的權限。
+ `GID` - Docker 容器的群組 ID。GID=100 是支援的值。您可以將 sudo 存取權新增給使用者。ID 會重新對應，以防止容器中執行的程序具有比所需更多的權限。
+ 中繼資料目錄 – 使用的 `/opt/.sagemakerinternal`和 `/opt/ml` 目錄 AWS。`/opt/ml` 中的中繼資料檔案包含有關資源的中繼資料，例如 `DomainId`。

  使用下列命令來顯示檔案系統內容：

  ```
  cat /opt/ml/metadata/resource-metadata.json
  ```
+ 記錄目錄 – `/var/log/studio` 保留給應用程式的記錄目錄，以及與其相關聯的延伸模組。建議您不要在建立映像時使用這些資料夾。

## 應用程式的運作狀態檢查和 URL
<a name="studio-updated-byoi-specs-app-healthcheck"></a>

運作狀態檢查和 URL 取決於應用程式。選擇與您要為其建置映像之應用程式相關聯的以下連結。
+ 適用於程式碼編輯器的 [應用程式的運作狀態檢查和 URL](code-editor-custom-images.md#code-editor-custom-images-app-healthcheck)
+ 適用於 JupyterLab 的 [應用程式的運作狀態檢查和 URL](studio-updated-jl-admin-guide-custom-images.md#studio-updated-jl-admin-guide-custom-images-app-healthcheck)

## Dockerfile 範例
<a name="studio-updated-byoi-specs-dockerfile-templates"></a>

對於同時符合此頁面上要求和您特定應用程式需求的 Dockerfile 範例，請導覽至個別應用程式區段中的範例 Dockerfile。下列選項包括 Amazon SageMaker Studio 應用程式。
+ 適用於程式碼編輯器的 [Dockerfile 範例](code-editor-custom-images.md#code-editor-custom-images-dockerfile-templates)
+ 適用於 JupyterLab 的 [Dockerfile 範例](studio-updated-jl-admin-guide-custom-images.md#studio-updated-jl-custom-images-dockerfile-templates)

**注意**  
如果您要將自有映像帶入 SageMaker Unified Studio，則需要遵循《Amazon SageMaker Unified Studio 使用者指南》**中的 [Dockerfile 規格](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)。  
您可以在《Amazon SageMaker Unified Studio 使用者指南》**的 [Dockerfile 範例中](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)找到 SageMaker Unified Studio 的 `Dockerfile` 範例。

# 如何自帶映像
<a name="studio-updated-byoi-how-to"></a>

以下頁面將提供如何自帶自訂映像的指示。繼續前，請確定滿足下列先決條件。

## 先決條件
<a name="studio-updated-byoi-how-to-prerequisites"></a>

您需要完成下列先決條件，才能自帶映像至 Amazon SageMaker AI。
+ 設定 Docker 應用程式。如需詳細資訊，請參閱「Docker 文件」**中的[入門](https://docs.docker.com/get-started/)。
+  AWS CLI 依照《 第 *AWS Command Line Interface 2 版使用者指南*》中的 [入門 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)中的步驟安裝最新的 。
+ 許可存取 Amazon Elastic Container Registry (Amazon ECR) 服務。如需詳細資訊，請參閱《Amazon ECR 使用者指南》**中的 [Amazon ECR 受管政策](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr_managed_policies.html)。
+ 已連接 [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess) 政策 AWS Identity and Access Management 的角色。

**Topics**
+ [先決條件](#studio-updated-byoi-how-to-prerequisites)
+ [建立自訂映像並推送至 Amazon ECR](studio-updated-byoi-how-to-prepare-image.md)
+ [將自訂映像連接至您的網域](studio-updated-byoi-how-to-attach-to-domain.md)
+ [更新容器組態](studio-updated-byoi-how-to-container-configuration.md)

# 建立自訂映像並推送至 Amazon ECR
<a name="studio-updated-byoi-how-to-prepare-image"></a>

此頁面提供如何建立本機 Dockerfile、建置容器映像，並將其新增至 Amazon Elastic Container Registry (Amazon ECR) 的指示。

**注意**  
在下列範例中，不會指定標籤，且預設會套用 `latest` 標籤。如果您想要指定標籤，則需要將 `:tag` 附加到映像名稱的結尾。如需詳細資訊，請參閱「Docker 文件」**中的 [Docker 映像檔標籤](https://docs.docker.com/reference/cli/docker/image/tag/)。

**Topics**
+ [建立本機 Dockerfile 並建置容器映像](#studio-updated-byoi-how-to-create-local-dockerfile)
+ [將 Docker 映像檔新增至 Amazon ECR](#studio-updated-byoi-add-container-image)

## 建立本機 Dockerfile 並建置容器映像
<a name="studio-updated-byoi-how-to-create-local-dockerfile"></a>

使用下列指示，搭配所需軟體和相依性建立 Dockerfile。

**建立 Dockerfile**

1. 首先為後續的 AWS CLI 命令設定變數。

   ```
   LOCAL_IMAGE_NAME=local-image-name
   ```

   `local-image-name` 是您在這裡定義的本機裝置上的容器映像名稱。

1. 建立名為 `Dockerfile` 且符合 [自訂映像規格](studio-updated-byoi-specs.md) 中規格的文字型文件。

   您可以在 [Dockerfile 範例](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates) 中找到受支援應用程式的 `Dockerfile` 範例。
**注意**  
如果您要將自有映像帶入 SageMaker Unified Studio，則需要遵循《Amazon SageMaker Unified Studio 使用者指南》**中的 [Dockerfile 規格](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)。  
您可以在《Amazon SageMaker Unified Studio 使用者指南》**的 [Dockerfile 範例中](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)找到 SageMaker Unified Studio 的 `Dockerfile` 範例。

1. 在包含 `Dockerfile` 的目錄中，使用下列命令建置 Docker 映像檔。句點 (`.`) 指定 `Dockerfile` 應該在組建命令的上下文中。

   ```
   docker build -t ${LOCAL_IMAGE_NAME} .
   ```

   建置完成後，您可以使用下列命令列出容器映像資訊。

   ```
   docker images
   ```

1. (選用) 您可以使用下列命令測試映像。

   ```
   docker run -it ${LOCAL_IMAGE_NAME}
   ```

   在輸出中，您將發現您的伺服器正在 URL 上執行，例如 `http://127.0.0.1:8888/...`。您可以透過將 URL 複製到瀏覽器來測試映像。

   如果這無法運作，您可能需要在 docker run 命令中包含 `-p port:port`。此選項會將容器上的公開連接埠對應至主機系統上的連接埠。如需 docker run 的詳細資訊，請參閱「Docker 文件」**中的[執行容器](https://docs.docker.com/engine/containers/run/)。

   一旦確認了伺服器運作正常，您就可以停止伺服器並關閉所有核心，然後再繼續。這些指示可供輸出檢視。

## 將 Docker 映像檔新增至 Amazon ECR
<a name="studio-updated-byoi-add-container-image"></a>

若要將容器映像新增至 Amazon ECR，您需要執行下列動作：
+ 建立 Amazon ECR 儲存庫。
+ 登入您的預設登錄檔。
+ 將映像推送至 Amazon ECR 儲存庫。

**注意**  
Amazon ECR 儲存庫必須與您連接映像的網域 AWS 區域 位於相同的 中。

**建置容器映像並將其推送至 Amazon ECR**

1. 首先為後續的 AWS CLI 命令設定變數。

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   ECR_REPO_NAME=ecr-repository-name
   ```
   + `account-id` 是您的帳戶 ID。您可以在任何 AWS 主控台頁面的右上角找到此項目。例如，[SageMaker AI 主控台](https://console.aws.amazon.com/sagemaker)。
   + `aws-region` 是 Amazon SageMaker AI 網域 AWS 區域 的 。您可以在任何 AWS 主控台頁面的右上角找到此項目。
   + `ecr-repository-name` 是您在這裡定義的 Amazon Elastic Container Registry 儲存庫名稱。若要檢視 Amazon ECR 儲存庫，請參閱 [Amazon ECR 主控台](https://console.aws.amazon.com/ecr)。

1. 登入 Amazon ECR 並登入 Docker。

   ```
   aws ecr get-login-password \
       --region ${REGION} | \
       docker login \
       --username AWS \
       --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com
   ```

   驗證成功後，您將收到成功登入訊息。
**重要**  
如果收到錯誤，您可能需要安裝或升級至最新版本的 AWS CLI。如需詳細資訊，請參閱「AWS Command Line Interface 使用者指南」**中的[安裝 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

1. 以與 Amazon ECR 相容的格式標記映像，來推送到您的儲存庫。

   ```
   docker tag \
       ${LOCAL_IMAGE_NAME} \
       ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

1. 使用 AWS CLI命令在 Amazon ECR 儲存庫中建立儲存庫。若要使用 Amazon ECR 主控台建立儲存庫，請參閱[建立 Amazon ECR 私有儲存庫來存放映像](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html)。

   ```
   aws ecr create-repository \
       --region ${REGION} \
       --repository-name ${ECR_REPO_NAME}
   ```

1. 將映像推送至您的 Amazon ECR 儲存庫。您也可以標記 Docker 映像檔。

   ```
   docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

一旦映像成功新增至 Amazon ECR 儲存庫，您就可以在 [Amazon ECR 主控台](https://console.aws.amazon.com/ecr)中檢視該映像。

# 將自訂映像連接至您的網域
<a name="studio-updated-byoi-how-to-attach-to-domain"></a>

此頁面提供如何將自訂映像連接至網域的指示。使用下列程序，以使用 Amazon SageMaker AI 主控台導覽至您的網域，並啟動**連接映像**程序。

下列指示假設您已將映像推送到與您網域 AWS 區域 相同的 Amazon ECR 儲存庫。如果您尚未這麼做，則請參閱[建立自訂映像並推送至 Amazon ECR](studio-updated-byoi-how-to-prepare-image.md)。

當您選擇連接映像時，您將有兩個選項：
+ 連接**新映像**：此選項會在 SageMaker AI 映像存放區中建立映像和映像版本，然後將其連接到您的網域。
**注意**  
如果您要繼續 BYOI 程序，請從 [建立自訂映像並推送至 Amazon ECR](studio-updated-byoi-how-to-prepare-image.md) 使用**新增映像**選項。
+ 連接**現有映像**：如果您已在 SageMaker AI 映像存放區中建立預期的自訂映像，請使用此選項。此選項會將現有的自訂映像連接至您的網域。若要在 SageMaker AI 映像存放區中檢視您的自訂映像，請參閱[檢視自訂映像詳細資訊 (主控台)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console)。

------
#### [ New image ]

**將新映像連接至您的網域**

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

1. 如果尚未這樣做，請展開**管理員組態**區段。

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

1. 從**網域**清單中，選取您要將映像連接至其中的網域。
**注意**  
如果您要將映像連接至 SageMaker Unified Studio 專案，且需要釐清要使用的網域，請參閱[檢視與您的專案相關聯的 SageMaker AI 網域詳細資訊](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain)。

1. 開啟**環境**索引標籤。

1. 在**個人 Studio 應用程式的自訂映像**區段中，選擇**連接映像**。

1. 針對**映像來源**，選擇**新映像**。

1. 包含您的 Amazon ECR 映像 URI。格式如下所示。

   ```
   account-id.dkr.ecr.aws-region.amazonaws.com/repository-name:tag
   ```

   1. 若要取得 Amazon ECR 映像 URI，請導覽至 [Amazon ECR 私有儲存庫](https://console.aws.amazon.com/ecr/private-registry/repositories)頁面。

   1. 選擇您的儲存庫名稱連結。

   1. 選擇對應至映像版本的**複製 URI** 圖示 (**映像標籤**)。

1. 遵循其餘指示來連接您的自訂映像。
**注意**  
確定您使用的應用程式類型與您的 `Dockerfile` 一致。如需詳細資訊，請參閱[Dockerfile 範例](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates)。

一旦映像成功連接至您的網域，您就可以在**環境**索引標籤中檢視該映像。

------
#### [ Existing image ]

**將現有映像連接至您的網域**

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

1. 如果尚未這樣做，請展開**管理員組態**區段。

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

1. 從**網域**清單中，選取您要將映像連接至其中的網域。
**注意**  
如果您要將映像連接到 SageMaker Unified Studio 專案，而且您需要釐清要使用的網域，請參閱[檢視與您的專案相關聯的 SageMaker AI 網域詳細資訊](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain)。

1. 開啟**環境**索引標籤。

1. 在**個人 Studio 應用程式的自訂映像**區段中，選擇**連接映像**。

1. 針對**映像來源**，選擇**現有映像**。

1. 從 SageMaker AI 映像存放區中選擇現有的映像和映像版本。

   如果無法檢視映像版本，您可能需要建立映像版本。如需詳細資訊，請參閱[檢視自訂映像詳細資訊 (主控台)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console)。

1. 遵循其餘指示來連接您的自訂映像。
**注意**  
確定您使用的應用程式類型與您的 `Dockerfile` 一致。如需詳細資訊，請參閱[Dockerfile 範例](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates)。

一旦映像成功連接至您的網域，您就可以在**環境**索引標籤中檢視該映像。

------

一旦您的映像成功連接到您的網域，網域使用者就可以為其應用程式選擇映像。如需詳細資訊，請參閱[在 Studio 中啟動自訂映像](studio-updated-byoi-how-to-launch.md)。

**注意**  
如果已將自訂映像連接至 SageMaker Unified Studio 專案，您將需要從 SageMaker Unified Studio 內啟動應用程式。如需詳細資訊，請參閱《Amazon SageMaker Unified Studio 使用者指南》**中的[啟動自訂映像](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-launch-custom-image.html)。

# 更新容器組態
<a name="studio-updated-byoi-how-to-container-configuration"></a>

您可以將自訂 Docker 映像帶入機器學習工作流程。自訂這些映像的關鍵層面是設定容器組態或 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html)。以下頁面提供如何設定 `ContainerConfig` 的範例。

進入點是在容器啟動時執行的命令或指令碼。自訂進入點可讓您在應用程式啟動之前設定環境、初始化服務，或執行任何必要的設定。

此範例提供如何使用 AWS CLI為 JupyterLab 應用程式設定自訂進入點的指示。此範例假設您已建立自訂映像和網域。如需說明，請參閱[將自訂映像連接至您的網域](studio-updated-byoi-how-to-attach-to-domain.md)。

1. 首先為後續的 AWS CLI 命令設定變數。

   ```
   APP_IMAGE_CONFIG_NAME=app-image-config-name
   ENTRYPOINT_FILE=entrypoint-file-name
   ENV_KEY=environment-key
   ENV_VALUE=environment-value
   REGION=aws-region
   DOMAIN_ID=domain-id
   IMAGE_NAME=custom-image-name
   IMAGE_VERSION=custom-image-version
   ```
   + `app-image-config-name` 是應用程式映像組態的名稱。
   + `entrypoint-file-name` 是容器進入點指令碼的名稱。例如 `entrypoint.sh`。
   + `environment-key` 是環境變數的名稱。
   + `environment-value` 是指派給環境變數的值。
   + `aws-region` 是 Amazon SageMaker AI 網域 AWS 區域 的 。您可以在任何 AWS 主控台頁面的右上角找到此項目。
   + `domain-id` 是您的網域 ID。若要檢視您的網域，請參閱[檢視網域](domain-view.md)。
   + `custom-image-name` 是自訂映像的名稱。若要檢視您的自訂映像詳細資訊，請參閱[檢視自訂映像詳細資訊 (主控台)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console)。

     如果您已遵循[將自訂映像連接至您的網域](studio-updated-byoi-how-to-attach-to-domain.md)中的指示，您可能想要使用已在該程序中使用的相同映像名稱。
   + `custom-image-version` 是自訂映像的版本編號。這應該是整數，代表映像的版本。若要檢視您的自訂映像詳細資訊，請參閱[檢視自訂映像詳細資訊 (主控台)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console)。

1. 使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html) API 建立映像組態。

   ```
   aws sagemaker create-app-image-config \
       --region ${REGION} \
       --app-image-config-name "${APP_IMAGE_CONFIG_NAME}" \
       --jupyter-lab-app-image-config "ContainerConfig = {
           ContainerEntrypoint = "${ENTRYPOINT_FILE}", 
           ContainerEnvironmentVariables = {
               "${ENV_KEY}"="${ENV_VALUE}"
           }
       }"
   ```

1. 使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html) API 更新網域的預設設定。這將連接自訂映像以及應用程式映像組態。

   ```
   aws sagemaker update-domain \
       --region ${REGION} \
       --domain-id "${DOMAIN_ID}" \
       --default-user-settings "{
           \"JupyterLabAppSettings\": {
               \"CustomImages\": [
                   {
                       \"ImageName\": \"${IMAGE_NAME}\",
                       \"ImageVersionNumber\": ${IMAGE_VERSION},
                       \"AppImageConfigName\": \"${APP_IMAGE_CONFIG_NAME}\"
                   }
               ]
           }
       }"
   ```

# 在 Studio 中啟動自訂映像
<a name="studio-updated-byoi-how-to-launch"></a>

在您已將自訂映像連接到 Amazon SageMaker AI 網域之後，該映像即可供網域中的使用者使用。使用下列指示搭配自訂映像啟動應用程式。

**注意**  
如果已將自訂映像連接至 SageMaker Unified Studio 專案，您將需要從 SageMaker Unified Studio 內啟動應用程式。如需詳細資訊，請參閱《Amazon SageMaker Unified Studio 使用者指南》**中的[啟動自訂映像](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-launch-custom-image.html)。

1. 啟動 Amazon SageMaker Studio。如需說明，請參閱[啟動 Amazon SageMaker Studio](studio-updated-launch.md)。

1. 如果尚未這樣做，請展開**應用程式**區段。

1. 從**應用程式**區段中選擇應用程式。如果您沒有看到可用的應用程式，應用程式可能隱藏，讓您看不到。在此情況下，請聯絡您的管理員。

1. 若要建立空間，請選擇 **\$1 建立*應用程式*空間**，然後遵循指示建立空間。

   若要選擇現有的空間，請選擇您要開啟之空間的連結名稱。

   

1. 在**映像**下，選擇您要使用的映像。

   如果**映像**下拉式清單無法使用，您可能需要停止空間。選擇**停止空間**來執行此操作。

1. 確認空間的設定，然後選擇**執行空間**。

# 檢視您的自訂映像詳細資訊
<a name="studio-updated-byoi-view-images"></a>

以下頁面提供如何在 SageMaker AI 映像存放區中檢視自訂映像詳細資訊的指示。

## 檢視自訂映像詳細資訊 (主控台)
<a name="studio-updated-byoi-view-images-console"></a>

以下提供如何使用 SageMaker AI 主控台檢視自訂映像的指示。在本節中，您可以檢視和編輯映像詳細資訊。

**檢視您的自訂映像 (主控台)**

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

1. 展開**管理員組態**區段。

1. 在**管理員組態**下，選擇**映像**。

1. 從**自訂映像**清單中，選取映像名稱的超連結。

## 檢視自訂映像詳細資訊 (AWS CLI)
<a name="studio-updated-byoi-view-images-cli"></a>

下節顯示如何使用 AWS CLI檢視自訂映像的範例。

```
aws sagemaker list-images \
       --region aws-region
```

# 使用 SOCI 加速容器啟動
<a name="soci-indexing"></a>

SOCI （可擴展的開放容器計畫） 索引可在 [Amazon SageMaker Studio](studio-updated.md)或 [Amazon SageMaker Unified Studio ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html)中延遲載入自訂容器映像。SOCI 可大幅縮短自訂[自帶映像 (BYOI)](studio-updated-byoi.md)容器的啟動時間約 30-70%。延遲改善取決於映像的大小、託管執行個體可用性和其他應用程式相依性。SOCI 會建立索引，允許容器只使用必要的元件啟動，並視需要擷取其他檔案。

SOCI 解決容器啟動時間緩慢的問題，這會中斷自訂映像的反覆式機器學習 (ML) 開發工作流程。隨著 ML 工作負載變得越來越複雜，容器映像越來越大，造成啟動延遲，阻礙了開發週期。

**Topics**
+ [主要優點](#soci-indexing-key-benefits)
+ [SOCI 索引的運作方式](#soci-indexing-how-works)
+ [架構元件](#soci-indexing-architecture-components)
+ [支援的工具](#soci-indexing-supported-tools)
+ [SOCI 索引的許可](soci-indexing-setup.md)
+ [使用 nerdctl 和 SOCI CLI 範例建立 SOCI 索引](soci-indexing-example-create-indexes.md)
+ [將 SOCI 索引影像與 Studio 範例整合](soci-indexing-example-integrate-studio.md)

## 主要優點
<a name="soci-indexing-key-benefits"></a>
+ **更快速的反覆運算週期**：根據映像和執行個體類型，減少容器啟動
+ **全域最佳化**：將效能優勢擴展到 Studio 中的所有自訂 BYOI 容器

## SOCI 索引的運作方式
<a name="soci-indexing-how-works"></a>

SOCI 會建立特殊化中繼資料索引，以映射容器映像的內部檔案結構。此索引可讓您存取個別檔案，而無需下載整個映像。SOCI 索引會在 [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) 中儲存為符合 OCI （開放容器計畫） 的成品，並連結到原始容器映像，以保留映像摘要和簽章有效性。

當您在 Studio 中啟動容器時，系統會使用 SOCI 索引來僅識別和下載啟動所需的必要檔案。根據您的應用程式需求，會平行擷取其他元件。

## 架構元件
<a name="soci-indexing-architecture-components"></a>
+ **原始容器映像**：存放在 Amazon ECR 中的基礎容器
+ **SOCI 索引成品**：映射影像檔案結構的中繼資料
+ **OCI 影像索引資訊清單**：連結原始影像和 SOCI 索引
+ **Finch 容器執行時間**：啟用與 Studio 的延遲載入整合

## 支援的工具
<a name="soci-indexing-supported-tools"></a>


| 工具 | 整合 | 
| --- | --- | 
| nerdctl | 需要容器化設定 | 
| Finch CLI | 原生 SOCI 支援 | 
| Docker \$1 SOCI CLI | 所需的其他工具 | 

**Topics**
+ [主要優點](#soci-indexing-key-benefits)
+ [SOCI 索引的運作方式](#soci-indexing-how-works)
+ [架構元件](#soci-indexing-architecture-components)
+ [支援的工具](#soci-indexing-supported-tools)
+ [SOCI 索引的許可](soci-indexing-setup.md)
+ [使用 nerdctl 和 SOCI CLI 範例建立 SOCI 索引](soci-indexing-example-create-indexes.md)
+ [將 SOCI 索引影像與 Studio 範例整合](soci-indexing-example-integrate-studio.md)

# SOCI 索引的許可
<a name="soci-indexing-setup"></a>

為您的容器映像建立 SOCI 索引，並將其儲存在 Amazon ECR 中，然後再搭配 [Amazon SageMaker Studio](studio-updated.md)或 [Amazon SageMaker Unified Studio](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html) 使用 SOCI 索引。

**Topics**
+ [先決條件](#soci-indexing-setup-prerequisites)
+ [所需的 IAM 許可](#soci-indexing-setup-iam-permissions)

## 先決條件
<a name="soci-indexing-setup-prerequisites"></a>
+ AWS 帳戶 具有管理許可的 [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)(IAM) 角色
  + [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
  + [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs.html)
+ 用於存放容器映像的 [Amazon ECR 私有儲存庫](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) 
+ 使用適當的登入資料設定 [AWS CLI v2.0\$1](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 
+ 下列容器工具：
  + 必要：[soci-snapshotter](https://github.com/awslabs/soci-snapshotter)
  + 選項：
    + [nerdctl](https://github.com/containerd/nerdctl)
    + [雀鳥](https://github.com/runfinch/finch)

## 所需的 IAM 許可
<a name="soci-indexing-setup-iam-permissions"></a>

您的 IAM 角色需要許可才能：
+ 建立和管理 SageMaker AI 資源 （網域、映像、應用程式組態）。
  + 您可以使用 [SageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) AWS 受管政策。如需更多許可詳細資訊，請參閱 [AWS 受管政策：AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess)。
+ [將映像推送至 Amazon ECR 私有儲存庫的 IAM 許可](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push-iam.html)。

# 使用 nerdctl 和 SOCI CLI 範例建立 SOCI 索引
<a name="soci-indexing-example-create-indexes"></a>

以下頁面提供如何使用 nerdctl 和 SOCI CLI 建立 SOCI 索引的範例。

**建立 SOCI 索引範例**

1. 首先為後續的 AWS CLI 命令設定變數。以下是設定變數的範例。

   ```
   ACCOUNT_ID="111122223333"
   REGION="us-east-1"
   REPOSITORY_NAME="repository-name"
   ORIGINAL_IMAGE_TAG="original-image-tag"
   SOCI_IMAGE_TAG="soci-indexed-image-tag"
   ```

   變數定義：
   + `ACCOUNT_ID` 是您的 AWS 帳戶 ID
   + `REGION` 是 Amazon ECR 私有登錄檔 AWS 區域 的
   + `REPOSITORY_NAME` 是 Amazon ECR 私有登錄檔的名稱
   + `ORIGINAL_IMAGE_TAG` 是原始映像的標籤
   + `SOCI_IMAGE_TAG` 是 SOCI 索引影像的標籤

1. 安裝必要的工具：

   ```
   # Install SOCI CLI, containerd, and nerdctl
   sudo yum install soci-snapshotter
   sudo yum install containerd jq  
   sudo systemctl start soci-snapshotter
   sudo systemctl restart containerd
   sudo yum install nerdctl
   ```

1. 設定您的登錄變數：

   ```
   REGISTRY_USER=AWS
   REGISTRY="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com"
   ```

1. 匯出您的區域並驗證 Amazon ECR：

   ```
   export AWS_REGION=$REGION
   REGISTRY_PASSWORD=$(/usr/local/bin/aws ecr get-login-password --region $AWS_REGION)
   echo $REGISTRY_PASSWORD | sudo nerdctl login -u $REGISTRY_USER --password-stdin $REGISTRY
   ```

1. 提取原始容器映像：

   ```
   sudo nerdctl pull $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG
   ```

1. 建立 SOCI 索引：

   ```
   sudo nerdctl image convert --soci $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

1. 推送 SOCI 索引影像：

   ```
   sudo nerdctl push --platform linux/amd64 $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

此程序會為 ECR 儲存庫中的原始容器映像建立兩個成品：
+ SOCI 索引 - 啟用延遲載入的中繼資料
+ 影像索引資訊清單 - OCI 相容資訊清單

# 將 SOCI 索引影像與 Studio 範例整合
<a name="soci-indexing-example-integrate-studio"></a>

您必須參考 SOCI 索引影像標籤，才能在 Studio 中使用 SOCI 索引影像，而非原始容器影像標籤。使用您在 SOCI 轉換程序期間指定的標籤 （例如 `SOCI_IMAGE_TAG`中的 [使用 nerdctl 和 SOCI CLI 範例建立 SOCI 索引](soci-indexing-example-create-indexes.md))。

**整合 SOCI 索引影像範例**

1. 首先為後續的 AWS CLI 命令設定變數。以下是設定變數的範例。

   ```
   ACCOUNT_ID="111122223333"
   REGION="us-east-1"
   IMAGE_NAME="sagemaker-image-name"
   IMAGE_CONFIG_NAME="sagemaker-image-config-name"
   ROLE_ARN="your-role-arn"
   DOMAIN_ID="domain-id"
   SOCI_IMAGE_TAG="soci-indexed-image-tag"
   ```

   變數定義：
   + `ACCOUNT_ID` 是您的 AWS 帳戶 ID
   + `REGION` 是 Amazon ECR 私有登錄檔 AWS 區域 的
   + `IMAGE_NAME` 是 SageMaker 映像的名稱
   + `IMAGE_CONFIG_NAME` 是 SageMaker 映像組態的名稱
   + `ROLE_ARN` 是執行角色的 ARN，具有[必要 IAM 許可中列出的許可](soci-indexing-setup.md#soci-indexing-setup-iam-permissions)
   + `DOMAIN_ID` 是[網域 ID](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view.html)
**注意**  
如果您要將映像連接至 SageMaker Unified Studio 專案，且需要釐清要使用的網域，請參閱[檢視與您的專案相關聯的 SageMaker AI 網域詳細資訊](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain)。
   + `SOCI_IMAGE_TAG` 是 SOCI 索引影像的標籤

1. 匯出您的區域：

   ```
   export AWS_REGION=$REGION
   ```

1. 建立 SageMaker 映像：

   ```
   aws sagemaker create-image \
       --image-name "$IMAGE_NAME" \
       --role-arn "$ROLE_ARN"
   ```

1. 使用您的 SOCI 索引 URI 建立 SageMaker 映像版本：

   ```
   IMAGE_INDEX_URI="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$IMAGE_NAME:$SOCI_IMAGE_TAG"
   
   aws sagemaker create-image-version \
       --image-name "$IMAGE_NAME" \
       --base-image "$IMAGE_INDEX_URI"
   ```

1. 建立應用程式映像組態並更新您的 Amazon SageMaker AI 網域，以包含應用程式的自訂映像。您可以根據 Code-OSS、Visual Studio Code - Open Source （程式碼編輯器） 和 JupyterLab 應用程式，為程式碼編輯器執行此操作。選擇下方的應用程式選項以檢視步驟。

------
#### [ Code Editor ]

   為程式碼編輯器建立應用程式映像組態：

   ```
   aws sagemaker create-app-image-config \
       --app-image-config-name "$IMAGE_CONFIG_NAME" \
       --code-editor-app-image-config '{ "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } }'
   ```

   更新您的 Amazon SageMaker AI 網域，以包含程式碼編輯器的自訂映像：

   ```
   aws sagemaker update-domain \
       --domain-id "$DOMAIN_ID" \
       --default-user-settings '{
           "CodeEditorAppSettings": {
           "CustomImages": [{
               "ImageName": "$IMAGE_NAME", 
               "AppImageConfigName": "$IMAGE_CONFIG_NAME"
           }]
       }
   }'
   ```

------
#### [ JupyterLab ]

   建立 JupyterLab 的應用程式映像組態：

   ```
   aws sagemaker create-app-image-config \
       --app-image-config-name "$IMAGE_CONFIG_NAME" \
       --jupyter-lab-app-image-config '{ "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } }'
   ```

   更新您的 Amazon SageMaker AI 網域，以包含 JupyterLab 的自訂映像：

   ```
   aws sagemaker update-domain \
       --domain-id "$DOMAIN_ID" \
       --default-user-settings '{
           "JupyterLabAppSettings": {
           "CustomImages": [{
               "ImageName": "$IMAGE_NAME", 
               "AppImageConfigName": "$IMAGE_CONFIG_NAME"
           }]
       }
   }'
   ```

------

1. 更新網域以包含自訂映像之後，您可以使用自訂映像在 Studio 中建立應用程式。當您[在 Studio 中啟動自訂映像](studio-updated-byoi-how-to-launch.md)確保使用自訂映像時。

# 分離和清除自訂映像資源
<a name="studio-updated-byoi-how-to-detach-from-domain"></a>

以下頁面提供如何使用 Amazon SageMaker AI 主控台或 AWS Command Line Interface () 分離自訂映像和清除相關資源的說明AWS CLI。

**重要**  
您必須先從網域分離自訂映像，才能從 SageMaker AI 映像存放區刪除映像。如果沒有，您可能會在檢視網域資訊或將新的自訂映像連接到網域時遇到錯誤。  
如果您載入自訂映像時遇到錯誤，請參閱[無法載入自訂映像](studio-updated-troubleshooting.md#studio-updated-troubleshooting-custom-image)。

## 分離和刪除自訂映像 (主控台)
<a name="studio-updated-byoi-how-to-detach-from-domain-console"></a>

以下提供如何使用主控台，從 SageMaker AI 分離自訂映像，以及清除自訂映像資源。

**從您的網域分離您的自訂映像**

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

1. 展開**管理員組態**區段。

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

1. 從**網域**清單中，選取網域。

1. 開啟**環境**索引標籤。

1. 針對**個人 Studio 應用程式的自訂映像**，選取您要分離之映像的核取方塊。

1. 請選擇**分離**。

1. 請遵循指示來分離。

**刪除您的自訂映像**

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

1. 如果尚未這樣做，請展開**管理員組態**區段。

1. 在**管理員組態**下，選擇**映像**。

1. 從**映像**清單中，選取您要刪除的映像。

1. 選擇 **刪除**。

1. 遵循指示從 SageMaker AI 刪除您的映像及其所有版本。

**從 Amazon ECR 刪除您的自訂映像和儲存庫**
**重要**  
這也會刪除此儲存庫中的任何容器映像和成品。

1. 開啟 [Amazon ECR 主控台](https://console.aws.amazon.com/ecr)。

1. 如果尚未這樣做，請展開左側導覽窗格。

1. 在**私有登錄檔**下，選擇**儲存庫**。

1. 選取您要刪除的儲存庫。

1. 選擇 **刪除**。

1. 請遵循指示來刪除。

## 分離和刪除自訂映像 (AWS CLI)
<a name="studio-updated-byoi-how-to-detach-from-domain-cli"></a>

下節顯示如何使用 AWS CLI分離自訂映像的範例。

1. 首先為後續的 AWS CLI 命令設定變數。

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   APP_IMAGE_CONFIG=app-image-config
   SAGEMAKER_IMAGE_NAME=custom-image-name
   ```
   + `aws-region` 是 Amazon SageMaker AI 網域 AWS 區域 的 。您可以在任何 AWS 主控台頁面的右上角找到此項目。
   + `app-image-config` 是應用程式映像組態的名稱。使用下列 AWS CLI 命令列出 中的應用程式映像組態 AWS 區域。

     ```
     aws sagemaker list-app-image-configs \
            --region ${REGION}
     ```
   + `custom-image-name` 是自訂映像名稱。使用下列 AWS CLI 命令列出 中的映像 AWS 區域。

     ```
     aws sagemaker list-images \
            --region ${REGION}
     ```

1. 若要使用這些指示從您的網域分離映像和映像版本，您需要建立或更新網域組態 json 檔案。
**注意**  
如果已遵循[將自訂映像連接至您的網域](studio-updated-byoi-how-to-attach-to-domain.md)中的指示，您可能已使用名為 `update-domain.json` 的檔案來更新網域。  
如果沒有該檔案，您可以改為建立新的 json 檔案。

   建立名為 `update-domain.json` 的檔案，您將用來更新網域。

1. 若要刪除自訂映像，您需要將 `CustomImages` 保留空白，例如 `"CustomImages": []`。選擇下列其中一項，以檢視程式碼編輯器或 JupyterLab 的範例組態檔案。

------
#### [ Code Editor: update domain configuration file example ]

   程式碼編輯器的組態檔案範例，使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CodeEditorAppSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CodeEditorAppSettings.html)。

   ```
   {
       "DomainId": "domain-id",
       "DefaultUserSettings": {
           "CodeEditorAppSettings": {
               "CustomImages": [
               ]
           }
       }
   }
   ```

------
#### [ JupyterLab: update domain configuration file example ]

   JupyterLab 的組態檔案範例，使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_JupyterLabAppSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_JupyterLabAppSettings.html)。

   ```
   {
       "DomainId": "domain-id",
       "DefaultUserSettings": {
           "JupyterLabAppSettings": {
               "CustomImages": [
               ]
           }
       }
   }
   ```

------

   `domain-id` 是您映像連接至其中的網域 ID。使用下列命令列出您的網域。

   ```
   aws sagemaker list-domains \
         --region ${REGION}
   ```

1. 儲存檔案。

1. 使用[更新網域組態檔案 呼叫 update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) AWS CLI `update-domain.json`。
**注意**  
您必須先刪除網域中的所有**應用程式**，然後才能更新自訂映像。您**不**需要刪除使用者設定檔或共用空間。如需刪除應用程式的指示，請選擇下列其中一個選項。  
如果您想要使用 SageMaker AI 主控台，請參閱[關閉網域中的 SageMaker AI 資源](sm-console-domain-resources-shut-down.md)。
如果您想要使用 AWS CLI，請使用 的步驟 1 到 3[刪除 Amazon SageMaker AI 網域 (AWS CLI)](gs-studio-delete-domain.md#gs-studio-delete-domain-cli)。

   ```
   aws sagemaker update-domain \
       --cli-input-json file://update-domain.json \
       --region ${REGION}
   ```

1. 刪除應用程式映像組態。

   ```
   aws sagemaker delete-app-image-config \
       --app-image-config-name ${APP_IMAGE_CONFIG}
   ```

1. 刪除自訂映像。這也會刪除所有映像版本。這不會刪除 Amazon ECR 容器映像和映像版本。若要這麼做，請使用下列選用步驟。

   ```
   aws sagemaker delete-image \
       --image-name ${SAGEMAKER_IMAGE_NAME}
   ```

1. (選用) 刪除您的 Amazon ECR 資源。下列清單提供 AWS CLI 命令，以取得下列步驟的 Amazon ECR 資源資訊。

   1. 為後續 AWS CLI 命令設定變數。

      ```
      ECR_REPO_NAME=ecr-repository-name
      ```

      `ecr-repository-name` 是 Amazon Elastic Container Registry 儲存庫的名稱。

      若要列出儲存庫的詳細資訊，請使用下列命令。

      ```
      aws ecr describe-repositories \
              --region ${REGION}
      ```

   1. 從 Amazon ECR 刪除您的儲存庫。
**重要**  
這也會刪除此儲存庫中的任何容器映像和成品。

      ```
      aws ecr delete-repository \
            --repository-name ${ECR_REPO_NAME} \
            --force \
            --region ${REGION}
      ```