기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
어레이 작업 워크플로우 예제
AWS Batch고객을 위한 일반적인 워크플로는 필수 구성 요소 설정 작업을 실행하고 많은 입력 작업에 대해 일련의 명령을 실행한 다음 결과를 집계하고 Amazon S3, DynamoDB, Amazon Redshift 또는 Aurora에 요약 데이터를 쓰는 작업으로 마무리하는 것입니다.
예시:
-
JobA
: Amazon S3 버킷의 객체를 빠르게 나열하고 메타데이터 검증을 수행하는 표준 비배열BucketA
작업입니다. SubmitJobJSON 구문은 다음과 같습니다.{ "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1" }
-
JobB
: 각 객체에 대해 CPU를 많이 사용하는 명령을 실행하고 결과를JobA
업로드하는 데 의존하는 10,000개의 복사본이 포함된 어레이BucketB
작업입니다.BucketA
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
: 종속성 모델에JobB
N_TO_N
의존하는 또 다른 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
: 각각 DynamoDB를 쿼리하는 데 필요한 10개의 검증 단계를 수행하는 어레이 작업이며 위의 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
" } ] }