서버리스 아키텍처의 핵심 요소 중 하나인 AWS Lambda 함수는 간편한 배포 및 관리가 가능하며, 이러한 함수를 타입스크립트로 작성하는 것은 매우 유용합니다. 이 블로그에서는 타입스크립트를 사용하여 AWS Lambda 함수를 작성하고 배포하는 방법에 대해 알아보겠습니다.
사전 준비
먼저, AWS 계정을 가지고 있어야 합니다. 계정이 없다면 AWS 웹사이트에서 새로운 계정을 생성할 수 있습니다. 또한, AWS CLI를 설치하여 AWS Lambda 함수를 배포하는 데 필요한 도구를 사용할 수 있어야 합니다.
타입스크립트 프로젝트 설정
새로운 디렉터리를 만들고 그 안에서 npm을 사용하여 새로운 프로젝트를 초기화합니다.
mkdir my-lambda-function
cd my-lambda-function
npm init -y
다음으로, typescript
와 aws-sdk
를 설치합니다.
npm install typescript @types/node aws-sdk
TypeScript 설정 파일 tsconfig.json
를 생성하고 다음과 같이 설정합니다.
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"outDir": "dist",
"strict": true
}
}
AWS Lambda 함수 작성
src
디렉터리에 index.ts
파일을 만들고 아래와 같이 간단한 AWS Lambda 함수를 작성합니다.
import { APIGatewayProxyHandler } from 'aws-lambda';
export const handler: APIGatewayProxyHandler = async (event, context) => {
try {
const response = {
statusCode: 200,
body: JSON.stringify({
message: 'Hello from AWS Lambda!',
}),
};
return response;
} catch (error) {
return {
statusCode: 500,
body: JSON.stringify({
message: 'Internal server error',
}),
};
}
};
AWS Lambda 함수 배포
AWS Lambda 함수를 배포하려면 먼저 함수를 명세하는 sam.yml
또는 serverless.yml
파일을 작성해야 합니다. 다음으로 AWS CLI를 사용하여 함수를 배포할 수 있습니다.
aws lambda create-function --function-name my-lambda-function --runtime nodejs14.x --handler dist/index.handler --role arn:aws:iam::123456789012:role/lambda-role --zip-file fileb://function.zip
위 명령어에서 my-lambda-function
, arn:aws:iam::123456789012:role/lambda-role
및 function.zip
을 실제 값으로 변경해야 합니다.
결론
이제 타입스크립트로 AWS Lambda 함수를 작성하고 배포하는 방법에 대해 알아보았습니다. 이를 통해 더 간편하고 안정적인 서버리스 애플리케이션을 개발할 수 있을 것입니다.
참고문헌: