提供使用者對自訂映像的存取權 - Amazon SageMaker

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

提供使用者對自訂映像的存取權

本文件提供 step-by-step相關指示,讓您的使用者能夠存取其 JupyterLab 環境中的自訂映像。您可以使用此頁面上的資訊,為使用者的工作流程建立自訂環境。此程序涉及使用:

  • Docker

  • AWS Command Line Interface

  • Amazon Elastic Container Registry

  • Amazon SageMaker AWS Management Console

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

重要

此頁面假設您擁有 AWS Command Line Interface 和 Docker 安裝在您的本機機器上。

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

若要讓您的使用者成功執行映像
  1. 建立 Dockerfile

  2. 從 Dockerfile 建置映像

  3. 將映像上傳至 Amazon Elastic Container Registry

  4. 將映像連接至您的 Amazon SageMaker 網域

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

步驟 1:建立 Dockerfile

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

重要

您的 Dockerfile 必須符合 中提供的規格Dockerfile 規格

使用下列 Dockerfile 範本建立 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='*'

使用下列 Dockerfile 範本建立 Amazon SageMaker Distribution Image:

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

在與 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 Elastic Container Registry 儲存庫。

步驟 3:將映像推送至 Amazon Elastic Container Registry 儲存庫

建立映像之後,請使用下列命令登入 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. 選擇 Next (下一步)

  8. 選擇提交

您的使用者現在可以從其 JupyterLab 空間選取您已連接至其網域的影像。