本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon P SageMaker rocessing 如何运行您的处理容器映像
Amazon P SageMaker rocessing 以与以下命令类似的方式运行您的处理容器映ECR像URI,其中AppSpecification.ImageUri
是您在CreateProcessingJob
操作中指定的亚马逊图片。
docker run [AppSpecification.ImageUri]
此命令运行在 Docker 映像中配置的 ENTRYPOINT
命令。
您还可以通过在 CreateProcessingJob
请求中使用 AppSpecification.ContainerEntrypoint
和 AppSpecification.ContainerArgument
参数来覆盖映像中的入口点命令,或者向入口点命令提供命令行参数。指定这些参数可将 Amazon SageMaker Processing 配置为运行容器,其方式与以下命令类似。
docker run --entry-point [AppSpecification.ContainerEntrypoint] [AppSpecification.ImageUri] [AppSpecification.ContainerArguments]
例如,如果您在CreateProcessingJob
请求[python3, -v, /processing_script.py]
中指定,并ContainerArguments
指定为,则 Amazon Proc [data-format, csv]
ess SageMaker ing 会使用以下命令运行您的容器。ContainerEntrypoint
python3 -v /processing_script.py data-format csv
构建处理容器时,请考虑以下详细信息:
-
Ama SageMaker zon Processing 根据命令运行的退出代码来决定任务是完成还是失败。如果所有处理容器都成功退出且退出代码为 0,处理作业已完成;如果任何容器以非零退出代码退出,则处理作业失败。
-
Amazon SageMaker Processing 允许您覆盖处理容器的入口点并设置命令行参数,就像使用 Docker 一样。APIDocker 镜像还可以使用和指令配置入口点和命令行参数。
ENTRYPOINT
CMD配置 DocCreateProcessingJob
ker 镜像入口点的方式ContainerEntrypoint
和ContainerArgument
参数反映了 Docker 如何通过 Docker 覆盖入口点和参数:API-
如果两者
ContainerEntrypoint
ContainerArguments
均未提供,则 “处理” 将使用图像CMD中的默认值ENTRYPOINT
或。 -
ContainerEntrypoint
如果提供了但未提供,则 PContainerArguments
rocessing 使用给定的入口点运行图像,并忽略图像CMD中的ENTRYPOINT
和。 -
如果提供了
ContainerArguments
,但未提供ContainerEntrypoint
,则 Processing 使用映像中的默认ENTRYPOINT
和提供的参数运行映像。 -
如果同时提供
ContainerEntrypoint
和ContainerArguments
,则 Processing 会使用给定的入口点和参数运行图像,并忽略图像CMD中的ENTRYPOINT
和。
-
-
在 Dockerfile 中必须使用
ENTRYPOINT
指令的 exec 形式 (ENTRYPOINT
["executable", "param1", "param2"])
,而不是 shell 形式 (ENTRYPOINT
command param1 param2
)。这允许您的处理容器接收SIGINT
和SIGKILL
信号,Processing 使用这些信号停止处理作业StopProcessingJob
API。 -
/opt/ml
并且其所有子目录均由。 SageMaker在构建 Processing Docker 映像时,请勿将处理容器所需的任何数据放置在这些目录中。 -
如果您打算使用GPU设备,请确保您的容器与 nvidia-docker 兼容。仅在容器中包含CUDA工具包。不要将NVIDIA驱动程序与映像捆绑在一起。有关 nvidia-docker 的更多信息,请参阅 /nvidia-docker。NVIDIA