As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Referência: exemplo de um fluxo de trabalho de matriz
Um fluxo de trabalho comum para AWS Batch os clientes é executar um trabalho de configuração pré-requisito, executar uma série de comandos em um grande número de tarefas de entrada e, em seguida, concluir com um trabalho que agrega resultados e grava dados resumidos no Amazon S3, DynamoDB, Amazon Redshift ou Aurora.
Por exemplo:
-
JobA
: um trabalho de não matriz padrão que executa uma rápida listagem e validação de metadados de objetos em um bucket do Amazon S3,BucketA
. A SubmitJobJSONsintaxe é a seguinte.{ "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1" }
-
JobB
: um trabalho de matriz com 10.000 cópiasJobA
que depende disso executa comandos CPU intensivos em cada objetoBucketA
e carrega os resultados para.BucketB
A SubmitJobJSONsintaxe é a seguinte.{ "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
: outro trabalho de matriz com 10 mil cópias, que depende doJobB
com um modelo de dependência deN_TO_N
, que executa comandos com uso intensivo de memória em relação a cada item emBucketB
, grava metadados no DynamoDB e carrega saída resultante emBucketC
. A SubmitJobJSONsintaxe é a seguinte.{ "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
: um trabalho de matriz que executa 10 etapas de validação, no qual cada uma precisa consultar o DynamoDB e pode interagir com qualquer um dos buckets do Amazon S3 mencionados acima. Cada uma das etapas noJobD
executa o mesmo comando. No entanto, o comportamento é diferente baseado no valor da variável de ambienteAWS_BATCH_JOB_ARRAY_INDEX
dentro do contêiner do trabalho. Essas etapas de validação são executadas sequencialmente (por exemplo,JobD:0
e, em seguida,JobD:1
). A SubmitJobJSONsintaxe é a seguinte.{ "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
: um trabalho final, sem matriz, que executa algumas operações simples de limpeza e envia uma SNS notificação à Amazon com uma mensagem de que o pipeline foi concluído e um link para a saída. URL A SubmitJobJSONsintaxe é a seguinte.{ "jobName": "JobE", "jobQueue": "ProdQueue", "jobDefinition": "JobE-Cleanup-and-Notification:1", "parameters": { "SourceBucket": "s3://amzn-s3-demo-source-bucket", "Recipient": "pipeline-notifications@mycompany.com" }, "dependsOn": [ { "jobId": "
JobD_job_ID
" } ] }