[typescript] 타입스크립트를 사용하여 AWS SDK로 CloudWatch 이벤트 구성하기

CloudWatch 이벤트를 사용하면 AWS에서 발생하는 이벤트에 대한 자동화된 반응을 설정할 수 있습니다. 이를 통해 파일의 생성, 리소스의 상태 변경 또는 예약된 작업과 같은 이벤트를 감지하고 이에 대한 액션을 수행할 수 있습니다. 이 글에서는 타입스크립트를 사용하여 AWS SDK를 통해 CloudWatch 이벤트를 구성하는 방법에 대해 살펴보겠습니다.

AWS SDK 설치

먼저 프로젝트에 AWS SDK를 설치해야 합니다. 아래 명령을 사용하여 aws-sdk 패키지를 설치합니다.

npm install aws-sdk

CloudWatch 이벤트 구성하기

타입스크립트를 사용하여 CloudWatch 이벤트를 구성하려면 먼저 AWS SDK를 사용하여 이벤트 룰을 생성해야 합니다. 아래 코드 예제는 이를 수행하는 방법을 보여줍니다.

import * as AWS from 'aws-sdk';

AWS.config.update({ region: 'us-east-1' });
const cloudwatchevents = new AWS.CloudWatchEvents();

const params = {
  Name: 'MyScheduledRule',
  ScheduleExpression: 'rate(5 minutes)',
  State: 'ENABLED'
};

cloudwatchevents.putRule(params, (err, data) => {
  if (err) console.log(err, err.stack);
  else console.log(data);
});

위 코드는 aws-sdk를 사용하여 MyScheduledRule이라는 이름의 CloudWatch 이벤트 룰을 생성하는 예제입니다. ScheduleExpression을 사용하여 5분마다 실행되는 이벤트를 설정하고, StateENABLED로 설정하여 이벤트를 활성화합니다.

이벤트 액션 설정하기

이벤트 룰을 생성한 후에는 해당 이벤트에 대한 액션을 설정해야 합니다. 아래 코드 예제는 S3 버킷에 파일이 생성될 때마다 이를 감지하여 Lambda 함수를 실행하는 방법을 보여줍니다.

const lambda = new AWS.Lambda();

const inputParams = {
  FunctionName: 'myLambdaFunction',
  State: 'ENABLED',
  Targets: [
    {
      Arn: 'arn:aws:s3:::mybucket',
      Id: 'TargetFunctionV0',
      Input: '{"key": "value"}'
    }
  ]
};

cloudwatchevents.putTargets(inputParams, (err, data) => {
  if (err) console.log(err, err.stack);
  else console.log(data);
});

위 코드는 putTargets 메서드를 사용하여 S3 버킷에 파일이 생성될 때 myLambdaFunction이라는 Lambda 함수를 실행하는 설정을 보여줍니다.

결론

이제 타입스크립트를 사용하여 AWS SDK를 통해 CloudWatch 이벤트를 구성하는 방법에 대해 살펴보았습니다. 이를 통해 AWS 환경에서 발생하는 다양한 이벤트에 대한 자동화된 액션을 설정할 수 있으며, 비즈니스 로직을 자동화하는 데 활용할 수 있습니다.

참고 문헌: AWS SDK for JavaScript v3 개발자 안내서

관련 글: TypeScript로 AWS SDK를 사용하여 S3 버킷에 파일 업로드하기