일정에 따라 Lambda 함수 간접 호출 - AWS Lambda

일정에 따라 Lambda 함수 간접 호출

Amazon EventBridge 스케줄러는 하나의 중앙 관리형 서비스에서 작업을 생성, 실행 및 관리할 수 있는 서버리스 스케줄러입니다. EventBridge 스케줄러를 사용하면 반복 패턴에 대해 cron 및 rate 표현식을 사용하여 일정을 만들거나 일회성 간접 호출을 구성할 수 있습니다. 전송을 위한 유연한 기간을 설정하고, 재시도 제한을 정의하고, 처리되지 않은 이벤트의 최대 보존 시간을 설정할 수 있습니다.

Lambda와 함께 EventBridge Scheduler를 설정하는 경우 EventBridge Scheduler는 Lambda 함수를 비동기적으로 호출합니다. 이 페이지에서는 EventBridge 스케줄러를 사용하여 일정에 따라 Lambda 함수를 간접적으로 호출하는 방법을 설명합니다.

실행 역할 설정

새 일정을 생성할 때 EventBridge 스케줄러에 사용자를 대신하여 대상 API 작업을 간접적으로 호출할 수 있는 권한이 있어야 합니다. 실행 역할을 사용하여 EventBridge 스케줄러에 이러한 권한을 부여합니다. 일정의 실행 역할에 연결하는 권한 정책은 필요한 권한을 정의합니다. 이러한 권한은 EventBridge 스케줄러가 간접적으로 호출하려는 대상 API에 따라 달라집니다.

다음 절차와 같이 EventBridge 스케줄러 콘솔을 사용하여 일정을 생성하면 EventBridge 스케줄러가 선택한 대상을 기준으로 실행 역할을 자동으로 설정합니다. EventBridge 스케줄러 SDK, AWS CLI 또는 AWS CloudFormation 중 하나를 사용하여 일정을 생성하려면 EventBridge 스케줄러가 대상을 간접적으로 호출하는 데 필요한 권한을 부여하는 기존 실행 역할이 있어야 합니다. 일정에 대한 실행 역할을 수동으로 설정하는 방법에 대한 자세한 내용은 EventBridge 스케줄러 사용 설명서의 Setting up an execution role을 참조하세요.

일정 생성

콘솔을 사용하여 일정 생성
  1. https://console.aws.amazon.com/scheduler/home에서 Amazon EventBridge 스케줄러 콘솔을 엽니다.

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

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

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

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

    3. 일정 그룹 드롭다운 목록에서 일정 그룹을 선택합니다. 그룹이 없는 경우 기본값을 선택합니다. 일정 그룹을 생성하려면 자체 일정 생성을 선택합니다.

      일정 그룹을 사용하여 일정 그룹에 태그를 추가합니다.

    1. 일정 옵션을 선택합니다.

      발생 수행할 작업

      일회성 일정

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

      날짜 및 시간에 대해 다음을 수행합니다.

      • YYYY/MM/DD 형식으로 유효한 날짜를 입력합니다.

      • 24시간 hh:mm 형식으로 타임스탬프를 입력합니다.

      • 시간대에서 시간대를 선택하세요.

      반복되는 일정

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

      1. 일정 유형에서 다음 중 하나를 수행합니다.

        • cron 표현식을 사용하여 일정을 정의하려면 Cron 기반 일정을 선택하고 cron 표현식을 입력합니다.

        • rate 표현식을 사용하여 일정을 정의하려면 Rate 기반 일정을 선택하고 rate 표현식을 입력합니다.

          cron 및 rate 표현식에 대한 자세한 내용은 Amazon EventBridge 스케줄러 사용 설명서의 EventBridge 스케줄러의 스케줄 유형을 참조하세요.

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

  4. (선택 사항) 이전 단계에서 반복 일정을 선택한 경우 기간 섹션에서 다음을 수행합니다.

    1. 시간대에서 시간대를 선택합니다.

    2. 시작 날짜 및 시간YYYY/MM/DD 형식으로 유효한 날짜를 입력한 다음 24시간 hh:mm 형식으로 타임스탬프를 지정합니다.

    3. 종료 날짜 및 시간YYYY/MM/DD 형식으로 유효한 날짜를 입력한 다음 24시간 hh:mm 형식으로 타임스탬프를 지정합니다.

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

  6. 대상 선택 페이지에서 EventBridge 스케줄러가 간접적으로 호출하는 AWS API 작업을 선택합니다.

    1. AWS Lambda Invoke를 선택합니다.

    2. 간접 호출 섹션에서 함수를 선택하거나 새 Lambda 함수 생성을 선택합니다.

    3. (선택 사항) JSON 페이로드를 입력합니다. 페이로드를 입력하지 않으면 EventBridge 스케줄러는 빈 이벤트를 사용하여 함수를 간접적으로 호출합니다.

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

  8. 설정 페이지에서 다음 작업을 수행합니다.

    1. 일정을 켜려면 일정 상태에서 일정 활성화를 토글합니다.

    2. 일정에 대한 재시도 정책을 구성하려면 재시도 정책 및 데드-레터 큐(DLQ)에서 다음을 수행합니다.

      • 재시도를 토글합니다.

      • 최대 이벤트 수명에 EventBridge 스케줄러가 처리되지 않은 이벤트를 보관해야 하는 최대 시간을 입력합니다.

      • 최대 시간은 24시간입니다.

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

        최댓값은 185회입니다.

      재시도 정책을 사용하면 일정이 대상을 간접적으로 호출하지 못할 경우 EventBridge 스케줄러가 일정을 다시 실행합니다. 구성된 경우 일정에 대한 최대 보존 기간과 재시도 횟수를 설정해야 합니다.

    3. EventBridge 스케줄러가 전송되지 않은 이벤트를 저장하는 위치를 선택합니다.

      DLQ(Dead Letter Queue) 옵션 수행할 작업
      저장 안 함 None을 선택합니다.
      일정을 생성하는 위치와 같은 AWS 계정에 이벤트 저장
      1. 내 AWS 계정의 Amazon SQS 대기열을 DLQ로 선택을 선택합니다.

      2. Amazon SQS 대기열의 Amazon 리소스 이름(ARN)을 선택합니다.

      일정을 생성하는 위치와 다른 AWS 계정에 이벤트 저장
      1. 다른 AWS 계정의 Amazon SQS 대기열을 DLQ로 지정을 선택합니다.

      2. Amazon SQS 대기열의 Amazon 리소스 이름(ARN)을 입력합니다.

    4. 고객 관리형 키를 사용하여 대상 입력을 암호화하려면 암호화에서 암호화 설정 사용자 지정(고급)을 선택합니다.

      이 옵션을 선택하는 경우 기존 KMS 키 ARN을 입력하거나 AWS KMS key 생성을 선택하여 AWS KMS 콘솔로 이동합니다. EventBridge 스케줄러가 저장 데이터를 암호화하는 방법에 대한 자세한 내용은 Amazon EventBridge 스케줄러 사용 설명서의 Encryption at rest를 참조하세요.

    5. EventBridge 스케줄러가 새 실행 역할을 생성하도록 하려면 이 일정에 대한 새 역할 생성을 선택합니다. 그런 다음 역할 이름을 입력합니다. 이 옵션을 선택하면 EventBridge 스케줄러가 템플릿 대상에 필요한 필수 권한을 역할에 연결합니다.

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

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

  11. 일정 생성을 선택합니다.

    일정 페이지에서 새 일정과 기존 일정 목록을 볼 수 있습니다. 상태 열에서 새 일정이 활성화됨 상태인지 확인합니다.

EventBridge 스케줄러가 함수를 간접적으로 호출했는지 확인하려면 함수의 Amazon CloudWatch 로그를 확인합니다.

EventBridge 스케줄러에 대한 자세한 내용은 다음을 참조하세요.