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.
Ejecutar AWS Batch cargas de trabajo con Step Functions
Puede integrar Step Functions con AWS Batch para ejecutar cargas de trabajo de computación por lotes en AWS nube. En esta página se enumeran las API AWS Batch compatibles y se proporciona un ejemplo de estado Task para realizar una tarea de procesamiento por lotes.
Para obtener información sobre la integración con AWS los servicios de Step Functions, consulte Integración de los servicios de y Cómo pasar parámetros a una API de servicio en Step Functions.
Características clave de Optimized AWS Batch integración
El patrón de integración Ejecutar un trabajo (.sync) está disponible.
Tenga en cuenta que no hay optimizaciones específicas para los patrones de integración Respuesta de la solicitud o Cómo esperar una devolución de llamada con el token de tarea.
A continuación se muestra un ejemplo Task estado que presenta un AWS Batch trabajo y espera a que se complete. Muchos de los argumentos que se muestran son opcionales.
"Submit Batch Job": {
"Type": "Task",
"Resource": "arn:aws:states:::batch:submitJob.sync",
"Arguments": {
"JobName": "BATCH_NAME",
"JobQueue": "BATCH_QUEUE_ARN",
"JobDefinition": "BATCH_JOB_DEFINITION_ARN",
"ArrayProperties": {
"Size": 10
},
"ContainerOverrides": {
"ResourceRequirements": [
{
"Type": "VCPU",
"Value": "4"
}
]
},
"DependsOn": [
{
"JobId": "myJobId",
"Type": "SEQUENTIAL"
}
],
"PropagateTags": true,
"Parameters": {
"Key1": "value1",
"Key2": "100"
},
"RetryStrategy": {
"Attempts": 1
},
"Tags": {
"Tag": "TAG"
},
"Timeout": {
"AttemptDurationSeconds": 10
}
}
}
Ejecute trabajos paralelos de varios contenedores, Amazon EKS y múltiples nodos
Con batch:submitJob.sync, trabajos que utilizan ecsProperties o eksProperties necesita la anulación correspondiente en el Task estado. Sin la anulación, el Task el estado falla con Batch.ClientException.
Para ecsProperties para tareas, utilice la siguiente anulación mínima:
"EcsPropertiesOverride": {
"TaskProperties": [ {} ]
}
Para eksProperties para tareas, utilice la siguiente anulación mínima:
"EksPropertiesOverride": {
"PodProperties": {}
}
importante
Para estos trabajos y para los trabajos paralelos de varios nodos, Step Functions detecta la finalización únicamente mediante una llamada DescribeJobs. Estas llamadas cuentan para las de tu cuenta DescribeJobs cuota. Si AWS Batch estrangula estas llamadas, el Task el estado puede permanecer en curso una vez finalizado el trabajo, hasta que una llamada posterior tenga éxito.
Para informar de que se ha completado antes, pasa el token de la tarea al trabajo en Parameters. Cuando termine el trabajo, llama SendTaskSuccess o SendTaskFailure del trabajo con esa ficha.
"Parameters": {
"TaskToken": "{% $states.context.Task.Token %}"
}
En la definición del trabajo, haga referencia al token en el comando del contenedor como Ref::TaskToken. Para obtener más información, consulte Ejecutar un trabajo (.sync).
Optimizado AWS Batch API:
Parámetros en Funciones escalonadas se expresan en PascalCase
Incluso si la API del servicio nativo está en CamelCase, por ejemplo, la acción de la API startSyncExecution, los parámetros se especifican en PascalCase, como: StateMachineArn.
Políticas de IAM para llamar AWS Batch
En las siguientes plantillas de ejemplo se muestra cómo AWS Step Functions genera políticas de IAM en función de los recursos de la definición de su máquina de estados. Para obtener más información, consulte Generación de políticas de IAM para servicios integrados por Steps Functions y Descubrimiento de los patrones de integración de servicios en Step Functions.
Puesto que se generan los identificadores de trabajo SubmitJob y TerminateJob y, por lo tanto, solo se conocen en tiempo de ejecución, no puede crear una política que restrinja el acceso en función de un recurso específico.
Consejo para un control de acceso preciso
Para agregar un acceso preciso a SubmitJob yTerminateJob, considere la posibilidad de utilizar etiquetas para los trabajos y de crear una política que limite el acceso en función de sus etiquetas. Además, la cola de trabajos, la definición y los recursos consumibles pueden restringirse para SubmitJob mediante el uso de recursos conocidos.