翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SageMaker Processing が独自の処理コンテナイメージを実行する方法
Amazon SageMaker Processing は、次のコマンドと同様の方法で処理コンテナイメージを実行します。ここでは AppSpecification.ImageUri は CreateProcessingJob オペレーションで指定した Amazon ECR イメージの URI です。
docker run [AppSpecification.ImageUri]
このコマンドは、Docker イメージで設定された ENTRYPOINT コマンドを実行します。
また、イメージ内の entrypoint コマンドを上書きしたり、CreateProcessingJob リクエストの AppSpecification.ContainerEntrypoint および AppSpecification.ContainerArgument パラメータを使用して entrypoint コマンドにコマンドライン引数を指定することもできます。これらのパラメータを指定すると、次のコマンドと同様の方法でコンテナを実行するよう Amazon SageMaker Processing が設定されます。
docker run --entry-point [AppSpecification.ContainerEntrypoint] [AppSpecification.ImageUri] [AppSpecification.ContainerArguments]
例えば、CreateProcessingJob リクエストで、ContainerEntrypoint を [python3, -v, /processing_script.py] に、ContainerArguments を [data-format, csv] に指定すると、Amazon SageMaker Processing は次のコマンドを使ってコンテナを実行します。
python3 -v /processing_script.py data-format csv
処理コンテナを構築するときは、次の詳細に注意してください。
-
Amazon SageMaker Processing は、コマンド実行の終了コードに応じて、ジョブが完了しているか失敗しているかを判断できます。処理ジョブは、すべての処理コンテナが終了コード 0 で正常に終了すると完了し、いずれかのコンテナが 0 以外の終了コードで終了すると失敗します。
-
Amazon SageMaker Processing では、Docker API の場合と同じように、処理コンテナのエントリポイントを上書きし、コマンドライン引数を設定できます。Docker イメージは、
ENTRYPOINTおよび CMD 命令を使用して、エントリポイントおよびコマンドライン引数を設定できます。CreateProcessingJobのContainerEntrypointおよびContainerArgumentパラメータが Docker イメージのエントリポイントと引数を設定する方法は、Docker が Docker API を介してエントリポイントと引数を上書きする方法を反映しています-
ContainerEntrypointもContainerArgumentsも指定されていない場合、Processing はイメージ内のデフォルトのENTRYPOINTまたは CMD を使います。 -
ContainerEntrypointが指定され、ContainerArgumentsが指定されていない場合、Processing は指定されたエントリポイントを使ってイメージを実行し、イメージ内のENTRYPOINTおよび CMD は無視されます。 -
ContainerArgumentsが指定され、ContainerEntrypointが指定されていない場合、Processing はイメージ内のデフォルトのENTRYPOINTと指定された引数を使ってイメージを実行します。 -
ContainerEntrypointとContainerArgumentsの両方が指定されている場合、Processing は指定されたエントリポイントと引数を使ってイメージを実行し、イメージ内のENTRYPOINTおよび CMD は無視されます。
-
-
Dockerfile の
ENTRYPOINT命令の exec 形式 (shell 形式 (ENTRYPOINTcommand param1 param2) ではなくENTRYPOINT["executable", "param1", "param2"])) を使用する必要があります。これにより、処理コンテナはSIGINT信号およびSIGKILL信号を受信できます。これらの信号は、Processing がStopProcessingJobAPI を使ってジョブの処理を停止するために使います。 -
/opt/mlおよびそのすべてのサブディレクトリは SageMaker AI によって予約されています。Processing の Docker イメージを構築する際は、処理コンテナが必要とするデータをこれらのディレクトリに配置しないでください。 -
GPU デバイスを使用する場合は、コンテナが nvidia-docker と互換性があることを確認してください。CUDA ツールキットのみをコンテナに含めます。NVIDIA ドライバーをイメージにバンドルしないでください。nvidia-docker の詳細については、NVIDIA/nvidia-docker
を参照してください。