[typescript] 타입스크립트에서 AWS Lambda를 사용하여 이미지 처리 및 변환 구현

AWS Lambda를 사용하여 이미지 처리 및 변환을 수행하는 서버리스 애플리케이션을 만들어보겠습니다. 우리는 타입스크립트와 AWS Lambda를 사용하여 이미지를 업로드하고 크기를 조정하거나 형식을 변환하는 기능을 구현할 것입니다.

1. AWS Lambda 및 IAM 설정

먼저 AWS 콘솔에서 IAM(Identity and Access Management)을 통해 Lambda 함수를 위한 적절한 권한을 부여해야 합니다. 람다 함수에서 S3 버킷에 액세스해야 하는 경우 이를 위한 IAM 역할을 생성하고 적절한 권한을 추가해야 합니다.

2. 타입스크립트 프로젝트 설정

타입스크립트로 AWS Lambda 함수를 작성하기 위해서는 Node.js 및 npm을 사용하여 프로젝트를 초기화해야 합니다.

먼저 프로젝트 디렉토리를 만들고, 다음과 같이 명령어를 사용하여 프로젝트를 초기화합니다.

mkdir image-processing-lambda
cd image-processing-lambda
npm init -y
npm install aws-sdk

3. 이미지 처리 및 변환 함수 구현

다음으로, 이미지를 처리하고 변환하기 위한 함수를 구현합니다. 예를 들어, 이미지 크기를 조절하거나 형식을 변경하는 함수를 작성할 수 있습니다. 아래는 이미지 크기를 조절하는 예시입니다.

import * as AWS from 'aws-sdk';

const S3 = new AWS.S3();

export const handler = async (event: any): Promise<any> => {
  const bucket = event.Records[0].s3.bucket.name;
  const key = decodeURIComponent(event.Records[0].s3.object.key);

  try {
    const params = {
      Bucket: bucket,
      Key: key,
    };

    const data = await S3.getObject(params).promise();

    // TODO: 이미지 처리 및 변환 작업 수행

    return { statusCode: 200, body: 'Image processed successfully' };
  } catch (err) {
    return { statusCode: 500, body: 'Error processing image' };
  }
};

4. 배포 및 테스트

이제 함수를 AWS Lambda에 배포하고 S3 버킷의 이벤트에 연결하여 이미지 업로드를 트리거하는 테스트를 해보세요.

위의 간단한 예제는 실제 프로덕션 환경에 적용하기 위해서는 보안 및 예외 처리 등을 강화해야 합니다.

AWS Lambda 및 타입스크립트를 사용하여 이미지 처리 및 변환을 구현하는 것은 효율적인 서버리스 솔루션을 구축하는 데 매우 유용합니다.