자습서: 작업 중지 이벤트에 대한 Amazon Simple Notification Service 알림 보내기 - AWS Batch

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

자습서: 작업 중지 이벤트에 대한 Amazon Simple Notification Service 알림 보내기

이 자습서에서는 작업이 EventBridge 특정 FAILED 상태로 이동한 작업 이벤트만 캡처하는 이벤트 규칙을 구성합니다. 이 자습서를 마치면 선택적으로 이 작업 대기열에 작업을 제출할 수도 있습니다. 이는 Amazon SNS 알림을 올바르게 구성했는지 테스트합니다.

필수 조건

이 자습서에서는 작업을 수락할 준비가 된 작업 중인 컴퓨팅 환경과 작업 대기열이 있다고 가정합니다. 이벤트를 캡처할 실행 중인 컴퓨팅 환경 및 작업 대기열이 없는 경우 시작하기 AWS Batch의 단계에 따라 하나를 생성합니다.

1단계: SNS 주제 생성 및 구독

본 자습서를 위해 새 이벤트 규칙의 이벤트 대상으로 사용할 Amazon SNS 주제를 구성합니다.

Amazon SNS 주제를 생성하려면
  1. https://console.aws.amazon.com/sns/v3/home에서 Amazon SNS 콘솔을 엽니다.

  2. 주제(Topics), 주제 생성(Create topic)을 차례로 선택합니다.

  3. 유형에서 표준을 선택합니다.

  4. 주제 이름JobFailedAlert(을)를 입력하고 주제 생성을 선택합니다.

  5. JobFailedAlert화면에서 구독 생성을 선택합니다.

  6. 프로토콜(Protocol)에서 이메일(Email)을 선택합니다.

  7. 엔드포인트(Endpoint)에 현재 액세스 권한이 있는 이메일 주소를 입력하고 구독 생성(Create subscription)을 선택합니다.

  8. 이메일 계정을 확인하고 구독 확인 이메일 메시지를 기다립니다. 메시지를 수신하면 구독 확인(Confirm subscription)을 선택합니다.

2단계: 이벤트 규칙 등록

다음으로 작업 실패 이벤트만 캡처하는 이벤트 규칙을 등록합니다.

EventBridge 규칙을 등록하려면
  1. https://console.aws.amazon.com/events/ 에서 아마존 EventBridge 콘솔을 엽니다.

  2. 탐색 창에서 규칙을 선택합니다.

  3. 규칙 생성을 선택합니다.

  4. 규칙에 대해 이름과 설명을 입력하십시오.

    규칙은 동일한 지역과 동일한 이벤트 버스의 다른 규칙과 동일한 이름을 가질 수 없습니다.

  5. 이벤트 버스에서 이 규칙과 연결할 이벤트 버스를 선택합니다. 이 규칙이 자신의 계정에서 발생하는 이벤트와 일치하도록 하려면 AWS 기본 이벤트 버스를 선택합니다. 계정의 AWS 서비스에서 이벤트가 발생하면 해당 이벤트는 항상 계정의 기본 이벤트 버스로 이동합니다.

  6. 규칙 유형에서 이벤트 패턴이 있는 규칙을 선택합니다.

  7. 다음을 선택합니다.

  8. 이벤트 소스에서 기타를 선택합니다.

  9. 이벤트 패턴에서 사용자 지정 패턴(JSON 편집기)을 선택합니다.

  10. 다음 이벤트 패턴을 텍스트 영역에 붙여 넣습니다.

    { "detail-type": [ "Batch Job State Change" ], "source": [ "aws.batch" ], "detail": { "status": [ "FAILED" ] } }

    이 코드는 작업 상태인 모든 이벤트와 일치하는 EventBridge 규칙을 정의합니다. FAILED 이벤트 패턴에 대한 자세한 내용은 Amazon EventBridge 사용 설명서의 이벤트 및 이벤트 패턴을 참조하십시오.

  11. 다음을 선택합니다.

  12. 대상 유형에서 AWS 서비스를 선택합니다.

  13. 대상 선택에서 SNS 주제를 선택하고, 주제에 대해 선택합니다 JobFailedAlert.

  14. (선택 사항)추가 설정에서 다음을 수행합니다.

    1. 최대 이벤트 기간(Maximum age of event)에 1분(00:01)에서 24시간(24:00) 사이의 값을 입력합니다.

    2. 재시도(Retry attempts)에 0에서 185 사이의 숫자를 입력합니다.

    3. 데드레터 대기열의 경우 표준 Amazon SQS 대기열을 데드레터 대기열로 사용할지 여부를 선택합니다. EventBridge 타겟으로 성공적으로 전송되지 않은 경우 이 규칙과 일치하는 이벤트를 데드레터 대기열로 전송합니다. 다음 중 하나를 수행합니다.

      • 배달 못한 편지 대기열을 사용하지 않으려면 없음(None)을 선택합니다.

      • 현재 AWS 계정에서 데드레터 대기열로 사용할 Amazon SQS 대기열 선택을 선택한 다음 드롭다운에서 사용할 대기열을 선택합니다.

      • 다른 AWS 계정의 Amazon SQS 대기열을 데드레터 대기열로 선택을 선택한 다음 사용할 대기열의 ARN을 입력합니다. 메시지를 전송할 EventBridge 권한을 부여하는 리소스 기반 정책을 대기열에 연결해야 합니다. 자세한 내용은 Amazon EventBridge 사용 설명서의 데드레터 대기열에 권한 부여를 참조하십시오.

  15. 다음을 선택합니다.

  16. (선택 사항) 규칙에 대해 하나 이상의 태그를 입력하십시오. 자세한 내용은 Amazon EventBridge 사용 설명서의 Amazon EventBridge 태그를 참조하십시오.

  17. 다음을 선택합니다.

  18. 규칙의 세부 정보를 검토하고 규칙 생성을 선택합니다.

3단계: 규칙 테스트

규칙을 테스트하려면 0이 아닌 종료 코드로 시작한 직후에 종료되는 작업을 제출합니다. 이벤트 규칙이 올바로 구성되었다면 몇 분 후에 이벤트 텍스트가 포함된 이메일 메시지를 수신할 것입니다.

규칙을 테스트하려면
  1. https://console.aws.amazon.com/batch/ 에서 AWS Batch 콘솔을 엽니다.

  2. 새 AWS Batch 작업을 제출하세요. 자세한 설명은 작업 제출 섹션을 참조하세요. 작업 명령의 경우 이 명령을 대체하여 종료 코드가 1인 컨테이너를 종료합니다.

    /bin/sh, -c, 'exit 1'
  3. 이메일에서 작업 실패 알림에 대한 이메일 알림이 수신되었는지 확인합니다.

대체 규칙: Batch Job 큐 차단됨

Batch Job Queue가 차단되었는지 모니터링하는 이벤트 규칙을 생성하려면 이 자습서의 단계를 반복하여 다음과 같이 변경하십시오.

  1. 1단계에서는 주제 BlockedJobQueue이름으로 사용합니다.

  2. 2단계에서는 JSON 편집기에서 다음 패턴을 사용합니다.

    { "detail-type": [ "Batch Job Queue Blocked" ], "source": [ "aws.batch" ] }