배열 작업 워크플로 예제 - AWS Batch

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

배열 작업 워크플로 예제

AWS Batch 고객의 일반적인 워크플로는 필수 설정 작업을 실행하고, 많은 입력 작업에 대해 일련의 명령을 실행한 다음, 결과를 집계하고 Amazon S3, DynamoDB, Amazon Redshift 또는 Aurora에 요약 데이터를 쓰는 작업으로 마무리하는 것입니다.

예:

  • JobA: Amazon S3 버킷인 BucketA에 있는 객체의 빠른 나열과 메타데이터 검증을 수행하는 표준 비 배열 작업입니다. JSON 구문은 다음과 같습니다. SubmitJob

    { "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1" }
  • JobB: JobA에 종속적인 10,000개의 작업 부수가 포함된 배열 작업. BucketA의 각 객체에 대한 CPU 집약적 명령을 실행하고 BucketB에 결과를 업로드합니다. SubmitJobJSON 구문은 다음과 같습니다.

    { "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: N_TO_N 종속성 모델을 사용하여 JobB에 종속되는 또 다른 10,000 부 배열 작업입니다. 이 작업은 BucketB의 각 항목에 대한 메모리 집약적 명령을 실행하고, 메타데이터를 DynamoDB에 쓴 다음, 결과 출력을 BucketC에 업로드합니다. 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: 10개의 검증 단계를 수행하는 배열 작업입니다. 각 단계는 DynamoDB에 쿼리해야 하고, 위의 Amazon S3 버킷 중 어떠한 버킷과도 상호 작용할 수 있습니다. JobD의 각 단계는 동일한 명령을 실행합니다. 그러나 동작은 작업의 컨테이너 내 AWS_BATCH_JOB_ARRAY_INDEX 환경 변수의 값에 따라 다릅니다. 이러한 검증 단계는 순차적으로 작동합니다(예: JobD:0 이후 JobD:1). SubmitJobJSON 구문은 다음과 같습니다.

    { "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: 몇 가지 단순한 정리 작업을 수행하고 파이프라인이 완료되었다는 메시지와 출력 URL 링크가 포함된 Amazon SNS 알림을 전송하는 최종 비 배열 작업입니다. SubmitJobJSON 구문은 다음과 같습니다.

    { "jobName": "JobE", "jobQueue": "ProdQueue", "jobDefinition": "JobE-Cleanup-and-Notification:1", "parameters": { "SourceBucket": "s3://JobD-Output-Bucket", "Recipient": "pipeline-notifications@mycompany.com" }, "dependsOn": [ { "jobId": "JobD_job_ID" } ] }