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

최종 업데이트 날짜: 2020년 5월 15일

Amazon CloudWatch의 예약된 트리거에서 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).

Amazon CloudWatch Events 규칙 생성

1.    CloudWatch 콘솔을 엽니다.

2.    탐색 창에서 [이벤트]를 선택합니다.

3.    [시작하기]를 선택합니다.

4.    [이벤트 소스] 섹션에서 필요에 따라 [이벤트 패턴] 또는 [스케줄]을 선택합니다.

5.    [대상]에서 [대상 추가]를 선택합니다.

6.    대상 목록에서 [배치 작업 대기열]을 선택합니다.

7.    [작업 대기열]에서 이전에 생성한 작업 대기열의 이름을 입력합니다.

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

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

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

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

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

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

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

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

12.    [세부 정보 구성]을 선택한 다음 설정 마법사의 나머지 단계를 완료하여 규칙을 생성합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?