

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kirim pekerjaan layanan di AWS Batch
<a name="service-job-submit"></a>

Untuk mengirimkan pekerjaan layanan ke AWS Batch, Anda menggunakan [ SubmitServiceJob ](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html) API. Anda dapat mengirimkan pekerjaan menggunakan AWS CLI atau SDK.

Jika Anda belum memiliki peran eksekusi maka Anda harus membuatnya sebelum Anda dapat mengirimkan pekerjaan layanan Anda. Untuk membuat peran eksekusi SageMaker AI, lihat [ Cara menggunakan peran eksekusi SageMaker AI ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html) di panduan Pengembang * [ SageMaker AI ](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)*.

## Alur kerja pengiriman pekerjaan layanan
<a name="service-job-submit-workflow"></a>

Saat Anda mengirimkan pekerjaan layanan, AWS Batch ikuti alur kerja ini:

1. AWS Batch menerima `[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)` permintaan Anda dan memvalidasi parameter AWS Batch-spesifik. Itu `serviceRequestPayload` dilewati tanpa validasi.

1. Pekerjaan memasuki `SUBMITTED` status dan ditempatkan di antrian pekerjaan yang ditentukan

1. AWS Batch mengevaluasi apakah ada kapasitas yang tersedia di lingkungan layanan untuk `RUNNABLE` pekerjaan di depan antrian

1. Jika kapasitas tersedia, pekerjaan dipindahkan ke `SCHEDULED` dan pekerjaan telah diteruskan ke SageMaker AI

1. Ketika kapasitas telah diperoleh dan SageMaker AI telah mengunduh data pekerjaan layanan, pekerjaan layanan akan memulai inisialisasi dan pekerjaan diubah menjadi`STARTING`. 

1. Ketika SageMaker AI mulai menjalankan pekerjaan, statusnya diubah menjadi`RUNNING`.

1. Sementara SageMaker AI mengeksekusi pekerjaan, AWS Batch memantau kemajuannya dan memetakan status layanan ke status AWS Batch pekerjaan. Untuk detail tentang bagaimana status pekerjaan layanan dipetakan, lihat [Pemetaan AWS Batch status pekerjaan layanan ke status SageMaker AI](service-job-status.md)

1. Ketika pekerjaan layanan selesai, ia pindah ke `SUCCEEDED` dan output apa pun siap untuk diunduh.

## Prasyarat
<a name="service-job-submit-prerequisites"></a>

Sebelum mengirimkan pekerjaan layanan, pastikan Anda memiliki:
+ **Lingkungan layanan ** — Lingkungan layanan yang menentukan batas kapasitas. Untuk informasi selengkapnya, lihat [Buat lingkungan layanan di AWS Batch](create-service-environments.md).
+ **SageMaker antrian pekerjaan ** — Antrian SageMaker pekerjaan untuk menyediakan penjadwalan pekerjaan. Untuk informasi selengkapnya, lihat [Buat antrian pekerjaan SageMaker Pelatihan di AWS Batch](create-sagemaker-job-queue.md).
+ **Izin IAM ** — Izin untuk membuat dan mengelola antrian AWS Batch pekerjaan dan lingkungan layanan. Untuk informasi selengkapnya, lihat [AWS Batch Kebijakan, izin, dan IAM role](IAM_policies.md).

## Kirim pekerjaan layanan
<a name="service-job-submit-example"></a>

Tabel di bawah ini menunjukkan cara mengirimkan pekerjaan layanan menggunakan SageMaker Python SDK atau AWS CLI:

------
#### [ Submit using the SageMaker Python SDK ]

[SageMaker Python SDK ](https://sagemaker.readthedocs.io/en/stable/v3-examples/training-examples/aws_batch/sm-training-queues_getting_started_with_model_trainer.html) memiliki dukungan bawaan untuk mengirimkan pekerjaan ke AWS Batch. Contoh berikut menunjukkan cara membuat model trainer, membuat antrian pelatihan, dan mengirimkan pekerjaan. Untuk contoh lengkapnya, lihat contoh [ buku catatan lengkap ](https://github.com/aws/sagemaker-python-sdk/blob/master/v3-examples/training-examples/aws_batch/sm-training-queues_getting_started_with_model_trainer.ipynb) di GitHub.

Buat `ModelTrainer` yang mendefinisikan konfigurasi pekerjaan pelatihan.

```
from sagemaker.train.model_trainer import ModelTrainer
from sagemaker.train.configs import SourceCode, Compute, StoppingCondition

source_code = SourceCode(command="echo 'Hello World'")

model_trainer = ModelTrainer(
    training_image={{"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:2.5-gpu-py311"}},
    source_code=source_code,
    base_job_name={{"my-training-job"}},
    compute=Compute(instance_type={{"ml.g5.xlarge"}}, instance_count={{1}}),
    stopping_condition=StoppingCondition(max_runtime_in_seconds={{300}}),
)
```

Buat `TrainingQueue` objek yang mereferensikan antrian pekerjaan Anda berdasarkan nama.

```
from sagemaker.train.aws_batch.training_queue import TrainingQueue

queue = TrainingQueue({{"my-sagemaker-job-queue"}})
```

Kirim pekerjaan dengan menelepon`queue.submit`.

```
job = queue.submit(
    training_job=model_trainer,
    inputs=None,
)
```

------
#### [ Submit using the AWS CLI ]

Berikut ini menunjukkan cara mengirimkan pekerjaan layanan menggunakan 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"
```

Untuk informasi lebih lanjut tentang `serviceRequestPayload` parameter, lihat[Muatan pekerjaan layanan di AWS Batch](service-job-payload.md).

------