

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Envía un trabajo de servicio en AWS Batch
<a name="service-job-submit"></a>

Para enviar trabajos de servicio a AWS Batch, utiliza la [ SubmitServiceJob ](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html) API. Puede enviar trabajos mediante el SDK AWS CLI o.

Si aún no tiene un rol de ejecución, debe crear uno antes de enviar el trabajo de servicio. Para crear el rol de ejecución de la SageMaker IA, consulta [ Cómo usar los roles de ejecución de la SageMaker IA ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html) en la guía [* para desarrolladores de *](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html) SageMaker IA.

## Flujo de trabajo para el envío del trabajo de servicio
<a name="service-job-submit-workflow"></a>

Cuando envíes un trabajo de servicio, AWS Batch sigue este flujo de trabajo:

1. AWS Batch recibe su `[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)` solicitud y valida los parámetros AWS Batch específicos. `serviceRequestPayload` se pasa sin validación.

1. El trabajo entra en el estado `SUBMITTED` y se coloca en la cola de trabajos especificada

1. AWS Batch evalúa si hay capacidad disponible en el entorno de servicio para los `RUNNABLE` trabajos de primera fila

1. Si hay capacidad disponible, el trabajo se traslada `SCHEDULED` y se pasa a la IA SageMaker 

1. Cuando se haya adquirido la capacidad y la SageMaker IA haya descargado los datos del trabajo de servicio, el trabajo de servicio comenzará a inicializarse y el trabajo pasará a `STARTING` ser. 

1. Cuando la SageMaker IA comience a ejecutar el trabajo, su estado pasará a`RUNNING`.

1. Mientras la SageMaker IA ejecuta el trabajo, AWS Batch monitorea su progreso y asigna los estados del servicio a los estados del AWS Batch trabajo. Para obtener más información sobre cómo se asignan los estados de las tareas de servicio, consulte [Correspondencia AWS Batch del estado del trabajo de servicio al estado de SageMaker IA](service-job-status.md).

1. Cuando se completa el trabajo de servicio, pasa a `SUCCEEDED` y cualquier salida estará lista para descargarse.

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

Antes de enviar un trabajo de servicio, asegúrese de disponer de lo siguiente:
+ **Entorno de servicio**: entorno de servicio que define los límites de capacidad. Para obtener más información, consulte [Cree un entorno de servicio en AWS Batch](create-service-environments.md).
+ **SageMaker cola de trabajos**: una cola de SageMaker trabajos para programar los trabajos. Para obtener más información, consulte [Creación de una cola de trabajos de entrenamiento de SageMaker en AWS Batch](create-sagemaker-job-queue.md).
+ **Permisos de IAM**: permisos para crear y administrar colas de trabajos y entornos de servicio de AWS Batch . Para obtener más información, consulte [AWS Batch Políticas, roles y permisos de IAM](IAM_policies.md).

## Envío de un trabajo de servicio
<a name="service-job-submit-example"></a>

La siguiente tabla muestra cómo enviar un trabajo de servicio mediante el SDK de SageMaker Python o la CLI: AWS 

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

El SDK de [ SageMaker Python ](https://sagemaker.readthedocs.io/en/stable/v3-examples/training-examples/aws_batch/sm-training-queues_getting_started_with_model_trainer.html) tiene soporte integrado para enviar trabajos a. AWS Batch Los siguientes ejemplos muestran cómo crear un entrenador modelo, crear una cola de formación y enviar un trabajo. Para ver un ejemplo completo, consulte el cuaderno de muestra [ completo ](https://github.com/aws/sagemaker-python-sdk/blob/master/v3-examples/training-examples/aws_batch/sm-training-queues_getting_started_with_model_trainer.ipynb) en GitHub.

Cree uno `ModelTrainer` que defina la configuración del trabajo de formación.

```
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` objeto que haga referencia a tu cola de trabajos por su nombre.

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

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

Envía un trabajo llamando`queue.submit`.

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

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

A continuación, se muestra cómo enviar un trabajo de servicio mediante 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"
```

Para obtener más información acerca de los parámetros `serviceRequestPayload`, consulte [La carga útil de los trabajos de servicio es AWS Batch](service-job-payload.md).

------