

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# でサービスジョブを送信する AWS Batch
<a name="service-job-submit"></a>

サービスジョブを送信するには AWS Batch、[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html) API を使用します。 AWS CLI または SDK を使用してジョブを送信できます。

実行ロールがまだない場合は、サービスジョブを送信する前に作成する必要があります。SageMaker AI 実行ロールを作成するには、「*[SageMaker AI デベロッパーガイド](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)*」の「[SageMaker AI 実行ロールの使用方法](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)」を参照してください。

## サービスジョブの送信ワークフロー
<a name="service-job-submit-workflow"></a>

サービスジョブを送信すると、 は次のワークフロー AWS Batch を実行します。

1. AWS Batch は`[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)`リクエストを受け取り、 AWS Batch特定のパラメータを検証します。`serviceRequestPayload` は検証なしで渡されます。

1. ジョブは `SUBMITTED` 状態になり、指定されたジョブキューに配置されます。

1. AWS Batch は、キューの前面にある`RUNNABLE`ジョブに対してサービス環境に使用可能な容量があるかどうかを評価します。

1. 容量が利用可能な場合、ジョブは `SCHEDULED` に移動し、ジョブは SageMaker AI に渡されます。

1. 容量が取得され、SageMaker AI がサービスジョブデータをダウンロードすると、サービスジョブは初期化を開始し、ジョブは `STARTING` に変更されます。

1. SageMaker AI がジョブの実行を開始すると、ステータスは `RUNNING` に変更されます。

1. SageMaker AI がジョブを実行する間、 は進行状況 AWS Batch を監視し、サービスの状態を AWS Batch ジョブの状態にマッピングします。サービスジョブの状態のマッピング方法の詳細については、「[AWS Batch サービスジョブのステータスを SageMaker AI ステータスにマッピングする](service-job-status.md)」を参照してください。

1. サービスジョブが完了すると、`SUCCEEDED` に移動し、出力をダウンロードする準備が整います。

## 前提条件
<a name="service-job-submit-prerequisites"></a>

サービスジョブを送信する前に、以下があることを確認してください。
+ **サービス環境** – 容量制限を定義するサービス環境。詳細については、「[でサービス環境を作成する AWS Batch](create-service-environments.md)」を参照してください。
+ **SageMaker ジョブキュー** – ジョブスケジューリングを提供する SageMaker ジョブキュー。詳細については、「[AWS Batch で SageMaker トレーニングジョブのキューを作成する](create-sagemaker-job-queue.md)」を参照してください。
+ **IAM アクセス許可** – AWS Batch ジョブキューとサービス環境を作成および管理するためのアクセス許可。詳細については、「[AWS Batch IAM ポリシー、ロール、アクセス許可](IAM_policies.md)」を参照してください。

## CLI AWS を使用してサービスジョブを送信する
<a name="service-job-submit-example"></a>

 AWS CLI を使用してサービスジョブを送信する方法を以下に示します。

```
aws batch submit-service-job \
    --job-name "my-sagemaker-training-job" \
    --job-queue "my-sagemaker-job-queue" \
    --service-job-type "SAGEMAKER_TRAINING" \
    --service-request-payload '{\"TrainingJobName\": \"sagemaker-training-job-example\", \"AlgorithmSpecification\": {\"TrainingImage\": \"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.8.0-cpu-py3\", \"TrainingInputMode\": \"File\", \"ContainerEntrypoint\":  [\"sleep\", \"1\"]}, \"RoleArn\":\"arn:aws:iam::123456789012:role/SageMakerExecutionRole\", \"OutputDataConfig\": {\"S3OutputPath\": \"s3://example-bucket/model-output/\"}, \"ResourceConfig\": {\"InstanceType\": \"ml.m5.large\", \"InstanceCount\": 1, \"VolumeSizeInGB\": 1}}'
    --client-token "unique-token-12345"
```

`serviceRequestPayload` パラメータの詳細については、「[のサービスジョブペイロード AWS Batch](service-job-payload.md)」を参照してください。