提供使用者存取自訂映像檔 - Amazon SageMaker

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

提供使用者存取自訂映像檔

本文件提供 step-by-step 指示,讓您的使用者能夠存取其 JupyterLab 環境中的自訂影像。您可以使用此頁面上的資訊,為使用者的工作流程建立自訂環境。該過程包括利用:

  • Docker

  • AWS Command Line Interface

  • Amazon Elastic Container Registry

  • Amazon SageMaker AWS Management Console

遵循此頁面上的指導後,Amazon SageMaker 網域上的 JupyterLab 使用者將可以從其 Jupyter 空間存取自訂映像和環境,以強化其機器學習工作流程。

重要

此頁面假設您已在本機電腦上Docker安裝 AWS Command Line Interface 並安裝。

若要讓使用者在其中成功執行其映像檔 JupyterLab,您必須執行下列動作:

讓您的使用者成功執行映像
  1. 創建碼頭文件

  2. 從碼頭文件構建圖像

  3. 將圖像上傳到 Amazon 彈性容器註冊表

  4. 將圖像附加到您的 Amazon SageMaker 域

  5. 讓您的使用者從您的 JupyterLab 空間存取影像

第 1 步:創建碼頭文件

建立 Docker 檔案以定義建立在使用者容器中執行應用程式所需環境的步驟。

重要

您的碼頭檔案必須符合中提供的規格。碼頭文件規格

使用下列碼頭檔案範本來建立 Amazon Linux 2 映像檔:

FROM public.ecr.aws/amazonlinux/amazonlinux:2 ARG NB_USER="sagemaker-user" ARG NB_UID="1000" ARG NB_GID="100" RUN yum install --assumeyes python3 shadow-utils && \ useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \ yum clean all && \ python3 -m pip install jupyterlab RUN python3 -m pip install --upgrade pip RUN python3 -m pip install --upgrade urllib3==1.26.6 USER ${NB_UID} CMD jupyter lab --ip 0.0.0.0 --port 8888 \ --ServerApp.base_url="/jupyterlab/default" \ --ServerApp.token='' \ --ServerApp.allow_origin='*'

使用以下 Docker 文件模板創建 Amazon SageMaker 分發映像:

FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu ARG NB_USER="sagemaker-user" ARG NB_UID=1000 ARG NB_GID=100 ENV MAMBA_USER=$NB_USER USER root RUN apt-get update RUN micromamba install sagemaker-inference --freeze-installed --yes --channel conda-forge --name base USER $MAMBA_USER ENTRYPOINT ["jupyter-lab"] CMD ["--ServerApp.ip=0.0.0.0", "--ServerApp.port=8888", "--ServerApp.allow_origin=*", "--ServerApp.token=''", "--ServerApp.base_url=/jupyterlab/default"]

第 2 步:構建碼頭文件

在與 Dockerfile 相同的目錄中,使用以下命令構建映像:

docker build -t username/imagename:tag your-account-id.dkr.ecr.AWS 區域.amazonaws.com/your-repository-name:tag
重要

您的影像必須以下列格式加上標籤:123456789012.dkr.ecr.your-region.amazonaws.com/your-repository-name:tag

否則,您將無法將其推送到 Amazon 彈性容器註冊表存儲庫。

步驟 3:將映像推送到 Amazon 彈性容器註冊表存儲庫

建立映像後,請使用下列命令登入 Amazon ECR 儲存庫:

aws ecr get-login-password --region AWS 區域 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.AWS 區域.amazonaws.com

登錄後,使用以下命令推送 Dockerfile:

docker push 123456789012.dkr.ecr.AWS 區域.amazonaws.com/your-repository-name:tag

步驟 4:將圖像附加到用戶的 Amazon SageMaker 域

推送映像後,您必須從 Amazon SageMaker 網域存取映像檔。請使用下列步驟將映像附加至 SageMaker 網域:

  1. 開啟 SageMaker 主控台

  2. 在 [管理員設定] 下,選擇 [網域

  3. 網域清單中,選取網域。

  4. 開啟 [環境] 索引標籤。

  5. 針對個人 Studio 應用程式的自訂影像,請選擇 [附加影像]。

  6. 指定影像來源。

  7. 選擇下一步

  8. 選擇提交

您的使用者現在可以從其 JupyterLab 空間中選取您已附加至其網域的映像。