View a markdown version of this page

Contoh alur kerja array - AWS Batch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Contoh alur kerja array

Alur kerja umum untuk AWS Batch pelanggan harus menjalankan tugas penyiapan prasyarat, menjalankan serangkaian perintah terhadap sejumlah besar tugas input, dan kemudian menyimpulkan dengan pekerjaan yang menggabungkan hasil dan menulis data ringkasan ke Amazon S3, DynamoDB, Amazon Redshift, atau Aurora.

Contoh:

  • JobA: Tugas standar non-array yang membuat daftar cepat dan metadata validasi objek dalam bucket Amazon S3, BucketA. Yang SubmitJob Sintaks JSON adalah sebagai berikut.

    { "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1" }
  • JobB: Pekerjaan array dengan 10.000 salinan yang bergantung pada JobA yang berjalan CPU-intensive perintah terhadap setiap objek di BucketA dan mengunggah hasil ke BucketB. SubmitJob Sintaks JSON adalah sebagai berikut.

    { "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: Pekerjaan array salinan 10.000 lainnya yang bergantung pada JobB dengan N_TO_N model ketergantungan, yang menjalankan perintah intensif memori terhadap setiap item di BucketB, menulis metadata ke DynamoDB, dan mengunggah output yang dihasilkan ke BucketC. SubmitJob Sintaks JSON adalah sebagai berikut.

    { "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: Pekerjaan array yang melakukan 10 langkah validasi yang masing-masing perlu menanyakan DynamoDB dan mungkin berinteraksi dengan bucket Amazon S3 di atas. Masing-masing langkah di JobD jalankan perintah yang sama. Namun, perilakunya berbeda berdasarkan nilai AWS_BATCH_JOB_ARRAY_INDEX variabel lingkungan dalam wadah pekerjaan. Langkah-langkah validasi ini berjalan secara berurutan (misalnya, JobD:0 dan kemudian JobD:1). SubmitJob Sintaks JSON adalah sebagai berikut.

    { "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: Tugas akhir non-array yang melakukan beberapa operasi pembersihan sederhana dan mengirimkan notifikasi Amazon SNS dengan pesan bahwa alur telah selesai dan tautan ke URL output. SubmitJob Sintaks JSON adalah sebagai berikut.

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