

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 il AWS CLI o SDK.

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, consulta [Come utilizzare 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 per l'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 dei lavori 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 passa `SCHEDULED` e il lavoro è stato passato all'IA SageMaker 

1. Quando la capacità è stata acquisita e l' SageMaker IA ha scaricato i dati del lavoro di servizio, il job di servizio inizierà l'inizializzazione e il lavoro 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 mappa gli stati del servizio in base agli stati del AWS Batch lavoro. Per informazioni dettagliate su come vengono mappati gli stati di lavoro del servizio, consulta [Mappatura dello stato AWS Batch del lavoro del servizio allo stato dell' SageMaker IA](service-job-status.md)

1. Quando il lavoro 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 job queue**: 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 AWS Batch lavoro e ambienti di servizio. Per ulteriori informazioni, consulta [AWS Batch Politiche, 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 lavoro di servizio utilizzando l'SDK SageMaker Python 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 trainer modello, creare una coda di formazione e inviare un lavoro. Per un esempio completo, consultate l'[esempio completo del taccuino](https://github.com/aws/sagemaker-python-sdk/blob/master/v3-examples/training-examples/aws_batch/sm-training-queues_getting_started_with_model_trainer.ipynb) su. GitHub

Crea un file `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),
)
```

Crea un `TrainingQueue` oggetto che faccia riferimento alla tua coda di lavoro per nome.

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

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

Invia un lavoro `queue.submit` chiamando.

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

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

Di seguito viene illustrato 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 per lavori di assistenza in AWS Batch](service-job-payload.md).

------