Ejecute AWS Batch cargas de trabajo con Step Functions - AWS Step Functions

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.

Ejecute 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 la AWS nube. En esta página se enumeran los estados compatibles AWS Batch APIs y se proporciona un ejemplo de Task estado para realizar una tarea de procesamiento por lotes.

Para obtener más información sobre la integración con AWS los servicios de Step Functions, consulte Integración de los servicios de yCómo pasar parámetros a una API de servicio en Step Functions.

Características principales de la AWS Batch integración optimizada

Tenga en cuenta que no hay optimizaciones específicas para los Respuesta de la solicitud patrones de Cómo esperar una devolución de llamada con el token de tarea integración.

A continuación se muestra un ejemplo de Task estado que envía 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, "Arguments": { "Key1": "value1", "Key2": 100 }, "RetryStrategy": { "Attempts": 1 }, "Tags": { "Tag": "TAG" }, "Timeout": { "AttemptDurationSeconds": 10 } } }

Optimizado AWS Batch APIs:

Parámetros en Step Functions se expresan en PascalCase

Incluso si la API del servicio nativo está en CamelCase, por ejemplo, la startSyncExecution acción de la API, se especifican parámetros PascalCase en, como:. StateMachineArn

Políticas de IAM para las llamadas AWS Batch

En las siguientes plantillas de ejemplo, se muestra cómo se AWS Step Functions generan las 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.

Como los identificadores de trabajo TerminateJob se generan SubmitJob 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 acceso detallado

Para añadir un acceso detallado a los trabajos 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 utilizar recursos conocidos.

Run a Job (.sync)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob", "batch:DescribeJobs", "batch:TerminateJob" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:region:account-id:rule/StepFunctionsGetEventsForBatchJobsRule" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": "*" } ] }