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.
Ejemplo de flujo de trabajo de un trabajo de matriz
Un flujo de trabajo habitual para AWS Batch los clientes consiste en ejecutar un trabajo de configuración previo, ejecutar una serie de comandos en un gran número de tareas de entrada y, a continuación, concluir con un trabajo que agregue los resultados y escriba datos resumidos en Amazon S3, DynamoDB, Amazon Redshift o Aurora.
Por ejemplo:
-
JobA
: un trabajo estándar que no es de matriz, que realiza un listado rápido y una validación de metadatos de los objetos de un bucketBucketA
de Amazon S3. La SubmitJobJSONsintaxis es la siguiente.{ "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1" }
-
JobB
: Un trabajo de matriz con 10 000 copias del que dependeJobA
que ejecute comandos CPU intensivos en cada objetoBucketA
y en el que cargue los resultados.BucketB
La SubmitJobJSONsintaxis es la siguiente.{ "jobName": "JobB", "jobQueue": "ProdQueue", "jobDefinition": "JobB-CPU-Intensive-Processing:1", "containerOverrides": { "resourceRequirements": [ { "type": "MEMORY", "value": "4096" }, { "type": "VCPU", "value": "32" } ] } "arrayProperties": { "size": 10000 }, "dependsOn": [ { "jobId": "
JobA_job_ID
" } ] } -
JobC
: otro trabajo de matriz de 10 000 copias que depende deJobB
con un modelo de dependenciaN_TO_N
, que ejecuta comandos con un uso intensivo de la memoria en cada elemento deBucketB
, escribe los metadatos en DynamoDB y carga la salida obtenida enBucketC
. La SubmitJobJSONsintaxis es la siguiente.{ "jobName": "JobC", "jobQueue": "ProdQueue", "jobDefinition": "JobC-Memory-Intensive-Processing:1", "containerOverrides": { "resourceRequirements": [ { "type": "MEMORY", "value": "32768" }, { "type": "VCPU", "value": "1" } ] } "arrayProperties": { "size": 10000 }, "dependsOn": [ { "jobId": "
JobB_job_ID
", "type": "N_TO_N" } ] } -
JobD
: un trabajo de matriz que realiza 10 pasos de validación que requieren consultar DynamoDB y que pueden interactuar con cualquiera de los buckets de Amazon S3 anteriores. Cada uno de los pasos deJobD
ejecuta el mismo comando. Sin embargo, el comportamiento es diferente en función del valor de la variable de entornoAWS_BATCH_JOB_ARRAY_INDEX
del contenedor del trabajo. Estos pasos de validación se ejecutan de forma secuencial (por ejemploJobD:0
y, a continuación,JobD:1
). La SubmitJobJSONsintaxis es la siguiente.{ "jobName": "JobD", "jobQueue": "ProdQueue", "jobDefinition": "JobD-Sequential-Validation:1", "containerOverrides": { "resourceRequirements": [ { "type": "MEMORY", "value": "32768" }, { "type": "VCPU", "value": "1" } ] } "arrayProperties": { "size": 10 }, "dependsOn": [ { "jobId": "
JobC_job_ID
" }, { "type": "SEQUENTIAL" }, ] } -
JobE
: Un último trabajo, que no es de matriz, que realiza algunas operaciones de limpieza sencillas y envía una SNS notificación de Amazon con un mensaje de que la canalización se ha completado y un enlace al resultado. URL La SubmitJobJSONsintaxis es la siguiente.{ "jobName": "JobE", "jobQueue": "ProdQueue", "jobDefinition": "JobE-Cleanup-and-Notification:1", "parameters": { "SourceBucket": "s3://JobD-Output-Bucket", "Recipient": "pipeline-notifications@mycompany.com" }, "dependsOn": [ { "jobId": "
JobD_job_ID
" } ] }