✨ 저의 Serverless 시리즈는 Typescript, yarn, AWS 기준으로 작성되므로 읽기 전 참고 바랍니다 ✨
TypeScript로 작성을 하다보니, 다음과 같은 상황에 변수에 어떤 타입을 줘야할지 헷갈릴 때가 있습니다, 또한 어떤 프로퍼티가 포함되어있는지 몰라 작성하기도 힘들고요.
export const hello: Function = async (
event: any,
context: any,
next: Function // 콜백함수이지만, 최신 람다함수의 경우는 오히려 사용하면 에러가 나타납니다.
): Promise<{
statusCode: number,
headers: Object,
body: string
}> => {
...
};
위와 같은 코드의 경우 event
안에 request
관련 값들이 들어가있습니다.
headers
, body
.. 등등, 그렇지만 어떤값이 들어오는지 정확히 모르죠
aws-lambda를 이용하시는분들에게만 적용되는 사안이지만
yarn add -D @types/aws-lambda
다음과 같은 코드를 통해 타입을 다운받아주고
위에 제시했던 코드를 다음과 같이 고칠 수 있게됩니다.
import { APIGatewayEvent, Context } from "aws-lambda";
export const hello: Function = async (
event: APIGatewayEvent,
context: Context,
next: Function // 콜백함수이지만, 최신 람다함수의 경우는 오히려 사용하면 에러가 나타납니다.
): Promise<{
statusCode: number,
headers: Object,
body: string
}> => {
...
};
짜잔~
위와 같이 Context
도 추가할 수 있습니다. 이 Context
는 해당 람다 함수에 관한 정보들이 담겨있습니다.