AWS Batch를 Amazon EventBridge 규칙의 대상으로 사용하고 싶습니다.
해결 방법
다음 예제에서는 새로운 Amazon Simple Storage Service(Amazon S3) 버킷이 생성될 때 AWS Batch 작업을 제출하도록 Amazon EventBridge를 구성하는 방법을 보여줍니다.
작업 정의 생성
1. AWS Batch 콘솔을 엽니다.
2. 탐색 모음에서 AWS 리전을 선택합니다.
3. 탐색 창에서 작업 정의를 선택한 후 생성을 선택합니다.
4. 작업 정의 이름에 작업 정의의 고유한 이름을 입력합니다.
참고: 고유한 이름에 최대 128자의 문자(대문자 및 소문자), 숫자, 하이픈 및 밑줄을 사용할 수 있습니다.
5. 컨테이너 이미지에 amazonlinux를 입력합니다.
6. 명령에 다음을 입력합니다.
echo Ref::S3bucket
7. vCPU에 2를 입력합니다.
8. **메모리(MiB)**에 500을 입력합니다.
9. **다음(Next)**을 선택한 다음, **생성(Create)**을 선택합니다.
작업 대기열의 ARN 및 작업 정의 가져오기
1. AWS Batch 콘솔을 엽니다.
2. 탐색 창에서 [Job queues(작업 대기열)]를 선택합니다.
3. 작업 대기열을 선택합니다.
4. 작업 대기열 세부 정보(Job queue details) 섹션에서 **Queue ARN(대기열 ARN)**을 복사한 다음 나중에 사용할 수 있도록 저장합니다.
5. 탐색 창에서 작업 정의를 선택한 후 이전에 생성한 작업 정의를 선택합니다.
6. Job definitions attributes(작업 정의 속성) 섹션에서 **Job definition ARN(작업 정의 ARN)**을 복사한 다음 나중에 사용할 수 있도록 저장합니다.
S3 버킷의 객체에 대해 CloudTrail 데이터 이벤트 로깅 활성화
Amazon S3 객체 수준 작업에 대해 AWS Batch 작업을 트리거하려면(예: 새 객체가 기존 버킷에 업로드될 때) S3 버킷 및 객체에 대해 CloudTrail 이벤트 로깅 활성화를 참조하세요.
EventBridge 규칙 생성
1. EventBridge 콘솔을 엽니다.
2. [규칙 생성]을 선택합니다.
3. 규칙의 **이름(Name)**을 입력합니다. **설명(Description)**을 입력할 수도 있습니다(선택 사항).
4. [패턴 정의]에서 [이벤트 패턴]을 선택합니다.
5. [서비스에서 제공하는 사전 정의된 패턴]을 선택합니다.
6. [서비스 공급자]에서 [AWS]를 선택합니다.
7. **Service Name(서비스 이름)**에서 **Simple Storage Service(S3)**를 선택합니다.
8. **이벤트 유형(Event type)**에서 **CloudTrail을 통해 버킷 수준 AWS API 호출(Bucket-Level API Call via CloudTrail)**을 선택합니다.
9. **Any operation(모든 작업)**을 선택합니다.
10. 대상 선택(Select targets) 섹션의 대상 드롭다운 목록에서 **배치 작업 대기열(Batch job queue)**을 선택합니다.
11. **작업 대기열(Job queue)**에 앞서 복사한 작업 대기열 ARN을 붙여넣습니다.
12. **작업 정의(Job definition)**에 앞서 복사한 작업 정의 ARN을 붙여넣습니다.
13. **작업 이름(Job name)**에 AWS Batch 작업의 이름을 입력합니다.
14. 입력 구성(Configure input) 섹션에서 **입력 변환기(Input Transformer)**를 선택합니다.
15. 첫 번째 입력란에 이벤트가 트리거될 때 전송되는 S3 버킷 값을 입력합니다.
{"S3BucketNameValue":"$.detail.requestParameters.bucketName"}
참고: S3BucketNameValue를 고유한 값으로 바꿉니다.
16. 두 번째 입력란에 Batch 작업에 전달하는 파라미터 구조를 입력합니다.
{"Parameters" : {"S3bucket": S3BucketNameValue}}
참고: S3BucketNameValue를 고유한 값으로 바꿉니다. S3bucket을 AWS Batch 작업에 정의할 파라미터의 이름으로 바꿉니다.
17. 이 특정 리소스에 대해 새 역할 생성(Create a new role for this specific resource) 또는 **기존 역할 사용(Use existing role)**을 선택합니다.
참고: 기존 역할을 선택하는 경우, 역할에 batch:SubmitJob 작업을 허용하는 AWS Identity and Access Management(IAM) 정책이 있어야 합니다.
18. **생성(Create)**을 선택합니다.
생성한 새 규칙 테스트
1. Amazon S3 콘솔을 엽니다.
2. 버킷 생성을 선택합니다.
3. 버킷 이름 필드에 새 버킷의 고유한 DNS 준수 이름을 입력합니다.
4. **리전(Region)**에서 EventBridge 규칙을 생성한 리전과 동일한 리전을 선택합니다.
5. **생성(Create)**을 선택합니다.
로그 확인
1. AWS Batch 콘솔을 엽니다.
2. 탐색 창에서 [Jobs(작업)]를 선택합니다.
3. [Status(상태)]가 [SUCCEEDED(성공)]인 작업을 선택합니다.
4. 작업 세부 정보 페이지의 시도 섹션에서 로그 보기를 선택합니다. 로그에 CloudWatch 콘솔의 버킷 이름이 표시됩니다.
관련 정보
자습서: 입력 변환기를 사용하여 Eventbridge가 이벤트 대상으로 전달하는 항목을 사용자 지정