AWS Batch를 내 EventBridge 규칙의 대상으로 사용하려면 어떻게 해야 하나요?

3분 분량
0

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.    vCPU2를 입력합니다.

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가 이벤트 대상으로 전달하는 항목을 사용자 지정

AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음