Referência: exemplo de um fluxo de trabalho de matriz - AWS Batch

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ópias JobA que depende disso executa comandos CPU intensivos em cada objeto BucketA 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 do JobB com um modelo de dependência de N_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 em BucketC. 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 no JobD executa o mesmo comando. No entanto, o comportamento é diferente baseado no valor da variável de ambiente AWS_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" } ] }