이 블로그 게시물에서는 AWS EventBridge Scheduler 및 AWS Lambda를 사용하여 이벤트를 예약하는 방법을 살펴보겠습니다. 이 방법은 효율적이고 확장 가능하므로 애플리케이션이 개별 EventBridge 규칙을 복잡하게 만들지 않고도 예약된 여러 이벤트를 처리할 수 있습니다. 뛰어들어 보세요!
AWS EventBridge는 자체 애플리케이션, 통합 SaaS(Software-as-a-Service) 애플리케이션 및 AWS 서비스의 데이터를 사용하여 애플리케이션을 쉽게 연결할 수 있게 해주는 서버리스 이벤트 버스 서비스입니다. EventBridge는 이벤트 소스에서 실시간 데이터 스트림을 제공하고 해당 데이터를 AWS Lambda, Amazon SNS 등과 같은 대상으로 라우팅합니다.
AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스입니다. S3, DynamoDB 또는 EventBridge와 같은 다른 AWS 서비스에서 직접 Lambda 함수를 트리거하고 하루에 몇 건의 요청에서 초당 수천 요청까지 자동으로 확장할 수 있습니다.
시작하기 전에 다음 사항을 확인하세요.
먼저 AWS EventBridge Scheduler가 Lambda 함수를 호출할 수 있도록 허용하는 IAM 역할을 생성해야 합니다.
IAM 콘솔로 이동: IAM 콘솔로 이동하여 왼쪽 탐색 창에서 역할을 선택한 다음 역할 생성을 클릭합니다.
신뢰할 수 있는 엔터티 선택: AWS 서비스를 선택하고 Lambda를 선택한 후 다음: 권한을 클릭합니다.
정책 연결: 다음 관리형 정책을 연결합니다.
검토 및 생성: 역할 이름(예: LambdaExecutionRole)을 제공하고 설정을 검토한 후 역할 생성을 클릭합니다.
신뢰 관계 업데이트: 역할이 생성된 후 역할 세부 정보 페이지로 이동합니다. 신뢰 관계 탭에서 신뢰 관계 편집을 클릭하세요. Scheduler.amazonaws.com 서비스를 포함하도록 신뢰 정책을 업데이트합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
예약된 이벤트를 처리할 Lambda 함수를 생성하겠습니다.
Lambda 콘솔로 이동: Lambda 콘솔로 이동하여 함수 생성을 클릭하고 처음부터 작성을 선택합니다.
Lambda 함수 구성: 함수 이름을 processScheduledEvent로 설정하고 Node.js 16.x를 런타임으로 선택한 다음 이전에 생성한 기존 역할(LambdaExecutionRole)을 사용합니다. 함수 생성을 클릭하세요.
함수 코드 추가: 기본 코드를 이벤트를 처리하는 논리로 바꿉니다. 예를 들어 이벤트 세부 정보를 기록하거나 이벤트 데이터를 기반으로 특정 작업을 수행할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
이제 AWS EventBridge Scheduler를 사용하여 이벤트를 예약하는 코드를 작성해 보겠습니다.
먼저 필요한 AWS SDK 모듈을 설치합니다.
exports.handler = async (event) => { const eventDetails = event; // Your logic to process the event console.log("Processing scheduled event:", eventDetails); // Example: Process event // processEvent(eventDetails); return { statusCode: 200, body: JSON.stringify('Event processed successfully'), }; };
다음은 예약 기능 구현 단계를 요약한 것입니다.
애플리케이션 입력에서 이벤트 세부정보를 추출합니다. 예는 다음과 같습니다.
npm install @aws-sdk/client-scheduler @aws-sdk/client-lambda
예정된 시간을 IST(인도 표준시)에서 UTC(협정 세계시)로 변환합니다.
const eventDetails = { name: "TEST-EVENT-01", userId: "USER123", eventId: "EVENT-001", eventTime: '2024-12-17T18:05:00+05:30' // IST time in ISO format };
UTC 시간 문자열이 EventBridge Scheduler에 필요한 올바른 형식(yyyy-MM-ddTHH:mm:ssZ)인지 확인하세요.
const istTime = new Date(eventDetails.eventTime); // IST time const utcTime = new Date(istTime.getTime() - 5.5 * 60 * 60 * 1000); // Convert to UTC
AWS SDK를 사용하여 Lambda 함수 ARN을 대상으로 지정하고 이벤트 세부 정보를 입력으로 포함하여 EventBridge 일정을 생성합니다.
const utcString = utcTime.toISOString().split('.')[0] + 'Z';
이 블로그 게시물에서는 AWS EventBridge Scheduler와 Lambda를 사용하여 예약된 이벤트를 설정하는 과정을 살펴보았습니다. 이 접근 방식을 사용하면 애플리케이션이 여러 예정된 이벤트를 효율적이고 확장 가능하게 처리할 수 있습니다. AWS의 강력한 기능을 사용하면 사용자 경험을 향상하고 운영을 간소화하는 강력한 기능을 구축할 수 있습니다.
즐거운 코딩하세요!
위 내용은 Lambda를 사용하여 EventBridge에서 이벤트 예약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!