EventBridge의 예약된 트리거에서 AWS Batch 작업으로 파라미터를 전달하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2022년 1월 20일

Amazon EventBridge의 예약된 트리거에서 AWS Batch 작업으로 파라미터를 전달하려고 합니다.

간략한 설명

AWS Batch에서 파라미터는 AWS Batch 작업 정의의 명령 섹션에서 정의하는 변수의 자리 표시자입니다. 이러한 자리 표시자를 사용하여 다음을 수행할 수 있습니다.

  • 동일한 형식을 사용하는 여러 작업에 대해 동일한 작업 정의를 사용합니다.
  • 제출 시 명령의 값을 프로그래밍 방식으로 변경합니다.

파라미터를 키–값 페어로 정의하는 것이 가장 좋습니다. 예:

"Parameters" : {"test" : "abc"}

작업 정의를 등록하거나 작업을 제출하는 경우 작업의 컨테이너 속성의 명령 필드에 파라미터 대체 자리 표시자를 사용합니다. 예:

"Command" : [ "echo” "Ref::test" ]

이전 작업을 제출하면 컨테이너의 명령에 있는 Ref::test 인수가 기본값(abc)으로 바뀝니다.

작업을 제출할 때 동일한 파라미터 키에 대해 다른 파라미터 값을 정의할 수 있습니다. 예:

"Parameters" : {"test" : "hello"}

이전 작업을 제출하면 컨테이너의 명령에 있는 Ref::test 인수가 작업 제출 중에 정의한 사용자 지정 값(hello)으로 대체됩니다.

해결 방법

AWS Batch 환경 설정

1.    컴퓨팅 환경을 생성합니다.

2.    작업 대기열을 생성한 다음 작업 대기열을 1단계에서 생성한 컴퓨팅 환경과 연결합니다.

3.    이미지를 사용하여 작업 정의를 생성합니다(예: nginx).

EventBridge 규칙 생성

중요: EventBridge 규칙에서 JSON 텍스트에 낙타 대문자를 사용해야 합니다.

1.    EventBridge 콘솔을 엽니다.

2.    [규칙 생성]을 선택합니다.

3.    규칙의 [이름]을 입력합니다. [설명]을 입력할 수도 있습니다(선택 사항).

4.    패턴 정의(Define pattern)에서 사용 사례에 따라 이벤트 패턴(Event pattern) 또는 일정(Schedule)을 선택합니다.

5.    Select 이벤트 버스에서 AWS 기본 이벤트 버스의 기본 옵션을 선택합니다.

6.    대상 선택(Select targets)대상(Target) 드롭다운 목록에서 배치 작업 대기열(Batch job queue)을 선택합니다.

7.    작업 대기열(Job queue)에 앞서 생성한 작업 대기열의 ARN을 입력합니다.

8.    [작업 정의]에서 이전에 생성한 작업 정의의 이름을 입력합니다.

9.    [작업 이름]에 작업 이름을 입력합니다.

10.    [입력 구성] 섹션을 확장하고 [상수(JSON 텍스트)]를 선택합니다.

11.    표시되는 텍스트 상자에 다음을 입력합니다.

{"Parameters": {"name":"test"}, "ContainerOverrides": { "Command": ["echo","Ref::name"] } }

EventBridge가 규칙을 호출하면 규칙이 AWS Batch 작업을 제출합니다. 작업이 성공하면 CloudWatch 로그가 다음 위치에 "test"를 인쇄합니다.

Log Group: /aws/batch/job
Log Stream: yourJobDefinitionName/default/your-ecs-task-ID

12.    [생성]을 선택합니다.