Référence : exemple de flux de travail d'une matrice - AWS Batch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Référence : exemple de flux de travail d'une matrice

Un flux de travail courant pour les AWS Batch clients consiste à exécuter une tâche de configuration préalable, à exécuter une série de commandes sur un grand nombre de tâches d'entrée, puis à terminer par une tâche qui agrège les résultats et écrit des données récapitulatives sur Amazon S3, DynamoDB, Amazon Redshift ou Aurora.

Par exemple :

  • JobA: tâche standard, hors matrice, qui effectue une liste rapide et une validation des métadonnées des objets d'un compartiment Amazon S3,BucketA. La SubmitJobJSONsyntaxe est la suivante.

    { "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1" }
  • JobB: une tâche matricielle de 10 000 copies qui en dépend JobA qui exécute des commandes CPU intensives sur chaque objet BucketA et télécharge les résultats vers. BucketB La SubmitJobJSONsyntaxe est la suivante.

    { "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: une autre tâche de matrice de 10 000 copies qui dépend JobB d'un modèle de N_TO_N dépendance, qui exécute des commandes gourmandes en mémoire sur chaque élément contenuBucketB, écrit des métadonnées dans DynamoDB et télécharge le résultat obtenu vers. BucketC La SubmitJobJSONsyntaxe est la suivante.

    { "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: tâche matricielle qui exécute 10 étapes de validation, chacune devant interroger DynamoDB et susceptible d'interagir avec l'un des compartiments Amazon S3 ci-dessus. Chacune des étapes de la procédure JobD exécute la même commande. Cependant, le comportement est différent en fonction de la valeur de la variable d'AWS_BATCH_JOB_ARRAY_INDEXenvironnement dans le conteneur de la tâche. Ces étapes de validation s'exécutent de manière séquentielle (par exemple, JobD:0 puisJobD:1). La SubmitJobJSONsyntaxe est la suivante.

    { "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: tâche finale, hors matrice, qui effectue quelques opérations de nettoyage simples et envoie une SNS notification Amazon avec un message indiquant que le pipeline est terminé et un lien vers le résultat. URL La SubmitJobJSONsyntaxe est la suivante.

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