Ejecución de cargas de trabajo AWS Batch con Step Functions
Puede integrar Step Functions con AWS Batch para ejecutar cargas de trabajo de computación por lotes en la nube de AWS. 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 más información sobre la integración con los servicios de AWS en 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 principales de la integración optimizada de AWS Batch
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 de estado Task que envía un trabajo AWS Batch y espera a que finalice. 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,
"Arguments": {
"Key1": "value1",
"Key2": 100
},
"RetryStrategy": {
"Attempts": 1
},
"Tags": {
"Tag": "TAG"
},
"Timeout": {
"AttemptDurationSeconds": 10
}
}
}
API AWS Batch optimizadas:
Los parámetros en Step Functions se expresan en PascalCase
Incluso si la API del servicio nativo está en CamelCase, por ejemplo, la acción startSyncExecution de la API, se especifican parámetros en PascalCase, como: StateMachineArn.
Políticas de IAM para las llamadas a AWS Batch
En estas plantillas de ejemplo, se muestra cómo AWS Step Functions genera políticas de IAM basadas en los recursos de la definición de la máquina de estado. 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.