EventBridge 스케줄러 시작하기 - EventBridge 스케줄러

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

EventBridge 스케줄러 시작하기

이 항목에서는 새 EventBridge 스케줄러 일정 생성에 대해 설명합니다. EventBridge 스케줄러 콘솔 AWS Command Line Interface (AWS CLI) 또는 템플릿 Amazon SQS 타겟으로 일정을 AWS SDKs 생성하려면 Scheduler 콘솔을 사용합니다. 그런 다음 로깅을 설정하고, 재시도를 구성하고, 실패한 작업에 대한 최대 보존 시간을 설정합니다. 일정을 만든 후에는 일정이 대상을 간접적으로 호출하는 데 성공하고 대상 대기열에 메시지를 전송하는지 확인합니다.

참고

이 가이드를 따르려면 에 설명된 최소 필수 권한으로 IAM 사용자를 설정하는 것이 좋습니다. 스케줄러에서 ID 기반 정책 사용 EventBridge 사용자를 생성하고 구성한 후 다음 명령을 실행하여 액세스 보안 인증 정보를 설정합니다. AWS CLI를 구성하려면 액세스 키 ID와 비밀 액세스 키가 필요합니다.

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

보안 인증 정보를 설정하는 다양한 방법에 대한 자세한 내용은 버전 2용AWS Command Line Interface 사용 설명서구성 설정 및 우선 순위를 참조하세요.

사전 조건

이 섹션의 단계를 시도하기 전에 다음을 수행해야 합니다.

EventBridge 스케줄러 콘솔을 사용하여 일정을 생성합니다.

콘솔을 사용하여 새 일정을 생성하려면
  1. 에 로그인한 다음 다음 링크를 선택하여 EventBridge 콘솔의 EventBridge 스케줄러 섹션을 엽니다. https://us-west-2.console.aws.amazon.com/scheduler/ 홈? AWS Management Console지역=us-west-2 #home

    참고

    의 지역 선택기를 사용하여 변경할 수 있습니다. AWS 리전 AWS Management Console

  2. 일정 페이지에서 일정 생성을 선택합니다.

  3. 일정 세부 정보 지정 페이지의 일정 이름 및 설명 섹션에서 다음을 수행합니다.

    1. 일정 이름에 일정의 이름을 입력합니다. 예제: MyTestSchedule

    2. 선택 사항설명에 일정에 대한 설명을 입력합니다. 예: My first schedule.

    3. 일정 그룹의 경우 드롭다운 옵션에서 일정 그룹을 선택합니다. 이전에 일정 그룹을 만든 적이 없는 경우 일정에 맞는 default 그룹을 선택할 수 있습니다. 새 일정 그룹을 만들려면 콘솔 설명에서 나만의 일정 만들기 링크를 선택합니다. 일정 그룹을 사용하여 일정 그룹에 태그를 추가합니다.

  4. 일정 패턴 섹션에서 다음을 수행합니다.

    1. 발생에서 다음 패턴 옵션 중 하나를 선택합니다. 구성 옵션은 선택한 패턴에 따라 달라집니다.

      • 일회성 일정 – 일회성 일정은 사용자가 지정하는 날짜와 시간에 한 번만 대상을 간접적으로 호출합니다.

        날짜 및 시간에 유효한 날짜를 YYYY/MM/DD 형식으로 입력합니다. 그런 다음 24시간 hh:mm 형식으로 타임스탬프를 지정합니다. 마지막으로 드롭다운 옵션에서 시간대를 선택합니다.

      • 반복 일정 – 반복 일정은 cron 표현식 또는 rate 표현식을 사용하여 지정한 속도로 대상을 간접적으로 호출합니다.

        표현식을 사용하여 일정을 구성하려면 CRON 기반 일정을 선택합니다. cron 요금 표현식을 사용하려면 요금 기반 일정을 선택하고 값에 양수를 입력한 다음 드롭다운 옵션에서 단위를 선택합니다.

      Cron 및 Rate 표현식 사용에 대한 자세한 내용은 EventBridge 스케줄러의 스케줄 유형 섹션을 참조하세요.

    2. 유연한 기간에서 끄기를 선택하여 옵션을 끄거나 드롭다운 목록에서 미리 정의된 기간 중 하나를 선택합니다. 예를 들어, 15분을 선택하고 1시간에 한 번씩 대상을 간접적으로 호출하도록 반복 일정을 설정하면 일정은 매시간 시작 후 15분 이내에 실행됩니다.

  5. 이전 단계에서 반복 일정을 선택한 경우 시간대 섹션에서 시간대를 지정하고 선택적으로 일정의 시작 날짜 및 시간, 종료 날짜 및 시간을 설정합니다. 시작 날짜가 없는 반복 일정은 생성되어 사용 가능한 즉시 시작됩니다. 종료 날짜가 없는 반복 일정은 계속해서 해당 대상을 무기한으로 간접적으로 호출합니다.

  6. Next(다음)를 선택합니다.

  7. 대상 선택 페이지에서 다음을 수행합니다.

    1. 템플릿 기반 목표를 선택하고 목표를 선택합니다. API 이 예제에서는 Amazon SQS SendMessage 템플릿 타겟을 선택합니다.

    2. SendMessage섹션의 SQSarn:aws:sqs:us-west-2:123456789012:TestQueue대기열에서 드롭다운 목록과 ARN 같은 기존 Amazon SQS 대기열을 선택합니다. 새 대기열을 생성하려면 새 SQS 대기열 생성을 선택하여 Amazon SQS 콘솔로 이동합니다. 대기열 생성을 완료한 후에는 EventBridge Scheduler 콘솔로 돌아가서 드롭다운을 새로 고칩니다. 새 대기열이 ARN 나타나고 선택할 수 있습니다.

    3. 타겟에는 EventBridge 스케줄러가 타겟에 전달할 페이로드를 입력합니다. 이 예에서는 대상 대기열에 다음 메시지를 보냅니다. Hello, it's EventBridge Scheduler.

  8. 다음을 선택한 다음 설정 - 옵션 페이지에서 다음을 수행하십시오.

    1. 일정 상태 섹션의 일정 활성화에서 스위치를 사용하여 특성을 켜거나 끕니다. 기본적으로 EventBridge 스케줄러는 일정을 활성화합니다.

    2. 일정 완료 후 작업 섹션에서 스케줄 완료 후 EventBridge 스케줄러가 수행하는 작업을 구성합니다.

      • 일정을 자동으로 삭제할지 DELETE여부를 선택합니다. 일회성 일정의 경우 일정이 대상을 한 번 간접적으로 호출한 후에 발생합니다. 반복 일정의 경우 이는 일정의 마지막으로 계획된 간접 호출 이후에 발생합니다. 자동 삭제에 대한 자세한 내용은 일정 완료 후 삭제 섹션을 참조하세요.

      • 일정이 완료된 후 EventBridge 스케줄러가 아무 조치도 취하지 않도록 하려면 값을 선택하거나 선택하지 마십시오. NONE

    3. 재시도 정책 및 데드레터 큐 (DLQ) 섹션에서 재시도 정책의 경우 재시도를 켜서 일정에 맞는 재시도 정책을 구성하십시오. 재시도 정책을 사용하면 스케줄이 대상 호출에 실패할 경우 Scheduler는 해당 일정을 다시 실행합니다. EventBridge 구성된 경우 일정에 대한 최대 보존 기간과 재시도 횟수를 설정해야 합니다.

    4. 최대 이벤트 기간 - 선택 사항의 경우 EventBridge Scheduler가 처리되지 않은 이벤트를 보관해야 하는 최대 시간최소 시간을 입력합니다.

      참고

      최댓값은 24시간입니다.

    5. 최대 재시도 횟수에는 대상이 오류를 반환할 경우 EventBridge 스케줄러가 스케줄을 재시도하는 최대 횟수를 입력합니다.

      참고

      최댓값은 185회입니다.

    6. 데드레터 큐 (DLQ) 의 경우 다음 옵션 중에서 선택하십시오.

      • 없음 - 구성하지 않으려면 이 옵션을 선택합니다. DLQ

      • 내 AWS 계정에서 Amazon SQS 대기열을 다음과 같이 DLQ 선택합니다. 이 옵션을 선택한 다음 드롭다운 ARN 목록에서 대기열을 선택하고 일정을 생성하는 대기열과 동일하게 AWS 계정 구성하십시오. DLQ

      • 다른 AWS 계정의 Amazon SQS 대기열을 다음과 같이 지정 DLQ — 이 옵션을 선택한 다음 대기열이 다른 대기열에 있는 경우 대기열을 로 구성합니다 AWS 계정. ARN DLQ 이 옵션을 사용하려면 대기열을 정확히 ARN 입력해야 합니다.

    7. 고객 관리 KMS 키를 사용하여 대상 입력을 암호화하려면 암호화 섹션에서 암호화 설정 사용자 지정 (고급) 을 선택합니다. 이 옵션을 선택하는 경우 기존 KMS 키를 ARN 입력하거나 키 만들기를 선택하여 AWS KMS 콘솔로 이동합니다. AWS KMS EventBridge Scheduler가 저장된 데이터를 암호화하는 방법에 대한 자세한 내용은 을 참조하십시오. EventBridge 스케줄러의 미사용 암호화

    8. 권한에서 기존 역할 사용을 선택한 다음, 설정 절차 중에 생성한 역할을 드롭다운 목록에서 선택합니다. IAM콘솔로 이동을 선택하여 새 역할을 생성할 수도 있습니다.

      EventBridge Scheduler에서 새 실행 역할을 자동으로 생성하도록 하려면 이 일정에 대해 새 역할 생성을 대신 선택하십시오. 그런 다음 역할 이름을 입력합니다. 이 옵션을 선택하면 EventBridge 스케줄러가 템플리트된 대상에 필요한 필수 권한을 역할에 추가합니다.

  9. Next(다음)를 선택합니다.

  10. 일정 검토 및 생성 페이지에서 일정의 세부 정보를 검토합니다. 각 섹션에서 편집을 선택하여 해당 단계로 돌아가서 세부 정보를 편집합니다.

  11. 일정 생성을 선택하여 새 일정 생성을 완료합니다. 일정 페이지에서 새 일정과 기존 일정 목록을 볼 수 있습니다. 상태 열에서 새 일정이 활성화됨 상태인지 확인합니다.

  12. 일정이 Amazon SQS 대상을 호출하는지 확인하려면 Amazon SQS 콘솔을 열고 다음을 수행하십시오.

    1. 대기열 목록에서 대상 대기열을 선택합니다.

    2. [메시지 전송 및 수신(Send and receive messages)]을 선택합니다.

    3. 메시지 보내기 및 받기 페이지의 메시지 수신에서 메시지 폴링을 선택하여 일정에 따라 대상 대기열로 보낸 테스트 메시지를 검색합니다.

를 사용하여 일정을 생성하십시오. AWS CLI

다음 예제는 AWS CLI 명령을 사용하여 템플릿이 있는 Amazon SQS 대상으로 EventBridge 스케줄러 일정을 생성하는 create-schedule방법을 보여줍니다. 다음 파라미터의 자리 표시자 값을 사용자의 정보로 바꿉니다.

  • --일정 – 일정 이름을 입력합니다.

  • RoleArn— ARN 일정과 연결할 실행 역할에 를 입력합니다.

  • Arn — 대상의 ARN 값을 입력합니다. 이 경우 대상은 Amazon SQS 대기열입니다.

  • 입력 — EventBridge 스케줄러가 대상 대기열에 전달하는 메시지를 입력합니다.

$ aws scheduler create-schedule --name sqs-templated-schedule --schedule-expression 'rate(5 minutes)' \ --target '{"RoleArn": "ROLE_ARN", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --flexible-time-window '{ "Mode": "OFF"}'

스케줄러를 사용하여 스케줄을 생성합니다. EventBridge SDKs

다음 예제에서는 EventBridge 스케줄러를 SDKs 사용하여 템플릿이 있는 Amazon SQS 타겟으로 EventBridge 스케줄러 일정을 생성합니다.

예 Python SDK
import boto3 scheduler = boto3.client('scheduler') flex_window = { "Mode": "OFF" } sqs_templated = { "RoleArn": "<ROLE_ARN>", "Arn": "<QUEUE_ARN>", "Input": "Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'" } scheduler.create_schedule( Name="sqs-python-templated", ScheduleExpression="rate(5 minutes)", Target=sqs_templated, FlexibleTimeWindow=flex_window)
예 자바 SDK
package com.example; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.scheduler.SchedulerClient; import software.amazon.awssdk.services.scheduler.model.*; public class MySchedulerApp { public static void main(String[] args) { final SchedulerClient client = SchedulerClient.builder() .region(Region.US_WEST_2) .build(); Target sqsTarget = Target.builder() .roleArn("<ROLE_ARN>") .arn("<QUEUE_ARN>") .input("Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'") .build(); CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder() .name("<SCHEDULE NAME>") .scheduleExpression("rate(10 minutes)") .target(sqsTarget) .flexibleTimeWindow(FlexibleTimeWindow.builder() .mode(FlexibleTimeWindowMode.OFF) .build()) .build(); client.createSchedule(createScheduleRequest); System.out.println("Created schedule with rate expression and an Amazon SQS templated target"); } }

다음 단계