Riferimento: esempio di flusso di lavoro basato su array - AWS Batch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Riferimento: esempio di flusso di lavoro basato su array

Un flusso di lavoro comune per AWS Batch i clienti consiste nell'eseguire un processo di configurazione con prerequisiti, eseguire una serie di comandi su un gran numero di attività di input e quindi concludere con un processo che aggrega i risultati e scrive dati di riepilogo su Amazon S3, DynamoDB, Amazon Redshift o Aurora.

Per esempio:

  • JobA: un processo standard, non basato su array, che esegue una rapida elencazione e convalida dei metadati degli oggetti in un bucket Amazon S3,. BucketA La sintassi è la seguente. SubmitJobJSON

    { "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1" }
  • JobB: un lavoro di matrice con 10.000 copie da cui dipende JobA che esegue comandi CPU intensivi su ogni oggetto in entrata BucketA e carica i risultati su. BucketB La SubmitJobJSONsintassi è la seguente.

    { "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: Un altro processo di array di 10.000 copie che dipende JobB da un modello di N_TO_N dipendenza, che esegue comandi che richiedono molta memoria su ogni elementoBucketB, scrive i metadati su DynamoDB e carica l'output risultante su. BucketC La sintassi è la seguente. SubmitJobJSON

    { "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 processo di array che esegue 10 passaggi di convalida, ciascuno dei quali richiede una query su DynamoDB e che può interagire con uno qualsiasi dei bucket Amazon S3 di cui sopra. Ciascuno dei passaggi della procedura esegue lo stesso comandoJobD. Tuttavia, il comportamento è diverso in base al valore della variabile di AWS_BATCH_JOB_ARRAY_INDEX ambiente all'interno del contenitore del lavoro. Questi passaggi di convalida vengono eseguiti in sequenza (ad esempio, JobD:0 e poiJobD:1). La SubmitJobJSONsintassi è la seguente.

    { "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 processo finale, non basato sull'array, che esegue alcune semplici operazioni di pulizia e invia una SNS notifica Amazon con un messaggio che la pipeline è stata completata e un collegamento all'output. URL La SubmitJobJSONsintassi è la seguente.

    { "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" } ] }