

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Invia un lavoro di assistenza in AWS Batch
<a name="service-job-submit"></a>

Per inviare lavori di assistenza a AWS Batch, si utilizza l'[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)API. Puoi inviare lavori utilizzando l'SDK AWS CLI or.

Se non disponi già di un ruolo di esecuzione, devi crearne uno prima di poter inviare il lavoro di servizio. Per creare il ruolo di esecuzione SageMaker AI, vedi [ Come usare i ruoli di esecuzione SageMaker AI ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html) nella guida per sviluppatori * [ SageMaker AI ](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)*.

## Flusso di lavoro di invio dei lavori di assistenza
<a name="service-job-submit-workflow"></a>

Quando invii un lavoro di assistenza, segui questo AWS Batch flusso di lavoro:

1. AWS Batch riceve la `[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)` richiesta e convalida i parametri AWS Batch specifici. `serviceRequestPayload`Viene passato senza convalida.

1. Il lavoro entra nello `SUBMITTED` stato e viene inserito nella coda di lavoro specificata

1. AWS Batch valuta se c'è capacità disponibile nell'ambiente di servizio per i `RUNNABLE` lavori in prima fila

1. Se la capacità è disponibile, il lavoro viene trasferito `SCHEDULED` e passato all'IA SageMaker 

1. Quando la capacità è stata acquisita e l' SageMaker IA ha scaricato i dati del job di servizio, il service job inizierà l'inizializzazione e il job verrà modificato in`STARTING`. 

1. Quando l' SageMaker IA inizia a eseguire il lavoro, il suo stato viene modificato in`RUNNING`.

1. Mentre l' SageMaker IA esegue il lavoro, ne AWS Batch monitora l'avanzamento e associa gli stati del servizio agli stati del AWS Batch lavoro. Per informazioni dettagliate su come vengono mappati gli stati dei job di servizio, vedi [Mapping AWS Batch dallo stato del lavoro di assistenza allo stato SageMaker AI](service-job-status.md)

1. Quando il job di assistenza è completato, passa a `SUCCEEDED` e qualsiasi output è pronto per essere scaricato.

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

Prima di inviare un lavoro di assistenza, assicurati di avere:
+ **Ambiente di servizio**: un ambiente di servizio che definisce i limiti di capacità. Per ulteriori informazioni, consulta [Crea un ambiente di servizio in AWS Batch](create-service-environments.md).
+ **SageMaker coda di lavoro**: una coda di SageMaker lavoro per fornire la pianificazione dei lavori. Per ulteriori informazioni, consulta [Crea una coda SageMaker di lavoro di formazione in AWS Batch](create-sagemaker-job-queue.md).
+ **Autorizzazioni IAM**: autorizzazioni per creare e gestire code di lavoro e ambienti di servizio. AWS Batch Per ulteriori informazioni, consulta [AWS Batch Policy, ruoli e autorizzazioni IAM](IAM_policies.md).

## Invia un lavoro di assistenza
<a name="service-job-submit-example"></a>

La tabella seguente mostra come inviare un job di servizio utilizzando SageMaker Python SDK o la CLI AWS :

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

L'SDK [ SageMaker Python ](https://sagemaker.readthedocs.io/en/stable/v3-examples/training-examples/aws_batch/sm-training-queues_getting_started_with_model_trainer.html) ha un supporto integrato per l'invio di lavori a. AWS Batch Gli esempi seguenti mostrano come creare un model trainer, creare una coda di addestramento e inviare un lavoro. Per un esempio completo, guarda il taccuino di esempio [ completo su. ](https://github.com/aws/sagemaker-python-sdk/blob/master/v3-examples/training-examples/aws_batch/sm-training-queues_getting_started_with_model_trainer.ipynb) GitHub

Creane uno `ModelTrainer` che definisca la configurazione del lavoro di formazione.

```
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}}),
)
```

Create un `TrainingQueue` oggetto che faccia riferimento alla vostra coda di lavoro per nome.

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

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

Invia un lavoro chiamando. `queue.submit`

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

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

Quanto segue mostra come inviare un lavoro di servizio utilizzando la 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"
```

Per ulteriori informazioni sui `serviceRequestPayload` parametri, vedere[Carichi utili dei lavori di assistenza in AWS Batch](service-job-payload.md).

------