Node.js 런타임을 사용하여 AWS Lambda에서 TypeScript 코드를 실행할 수 있습니다. Node.js 는 기본적으로 TypeScript 코드를 실행하지 않으므로 먼저 TypeScript 코드를 JavaScript로 트랜스파일해야 합니다. 그런 다음 JavaScript 파일을 사용하여 함수 코드를 Lambda에 배포합니다. 코드는 사용자가 관리하는 AWS Identity and Access Management(IAM) 역할의 자격 증명을 사용하여 JavaScript용 AWS SDK가 포함된 환경에서 실행됩니다. Node.js 런타임에 포함된 SDK 버전에 대해 자세히 알아보려면 런타임에 포함된 SDK 버전 섹션을 참조하세요.
Lambda는 다음과 같은 Node.js 런타임을 지원합니다.
명칭 | 식별자 | 운영 체제 | 사용 중단 날짜 | 블록 함수 생성 | 블록 함수 업데이트 |
---|---|---|---|---|---|
Node.js 22 |
|
Amazon Linux 2023 |
2027년 4월 30일 |
2027년 6월 1일 |
2027년 7월 1일 |
Node.js 20 |
|
Amazon Linux 2023 |
2026년 4월 30일 |
2026년 6월 1일 |
2026년 7월 1일 |
Node.js 18 |
|
Amazon Linux 2 |
2025년 9월 1일 |
2025년 10월 1일 |
2025년 11월 1일 |
주제
TypeScript 개발 환경 설정
로컬 통합 개발 환경(IDE) 또는 텍스트 편집기를 사용하여 TypeScript 함수 코드를 작성합니다. Lambda 콘솔에서는 TypeScript 코드를 생성할 수 없습니다.
esbuildtsc
)를 사용하여 TypeScript 코드를 JavaScript로 트랜스파일할 수 있습니다. AWS Serverless Application Model(AWS SAM)와 AWS Cloud Development Kit (AWS CDK) 모두 esbuild를 사용합니다.
esbuild를 사용할 경우 다음을 고려하세요.
-
TypeScript 경고
에는 여러 종류가 있습니다. -
사용하려는 Node.js 런타임과 일치하도록 TypeScript 변환 설정을 구성해야 합니다. 자세한 내용은 esbuild 설명서의 Target(대상)
을 참조하세요. Lambda에서 지원하는 특정 Node.js 버전을 타겟팅하는 방법을 보여주는 tsconfig.json 파일의 예는 TypeScript GitHub 저장소 를 참조하세요. -
esbuild는 유형 검사를 수행하지 않습니다. 유형을 확인하려면
tsc
컴파일러를 사용합니다. 다음 예에 표시된 대로tsc -noEmit
을 실행하거나 tsconfig.json 파일에"noEmit"
파라미터를 추가합니다. 이렇게 하면tsc
를 구성하여 JavaScript 파일을 방출하지 않습니다. 유형을 확인한 후 esbuild를 사용하여 TypeScript 파일을 JavaScript로 변환합니다.
예 tsconfig.json
{ "compilerOptions": { "target": "es2020", "strict": true, "preserveConstEnums": true,
"noEmit": true,
"sourceMap": false, "module":"commonjs", "moduleResolution":"node", "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "isolatedModules": true, }, "exclude": ["node_modules", "**/*.test.ts"] }
Lambda에 대한 유형 정의
@types/aws-lambda
-
다음과 같은 일반적인 AWS 이벤트 소스:
-
APIGatewayProxyEvent
: Amazon API Gateway 프록시 통합용 -
SNSEvent
: Amazon Simple Notification Service 알림용 -
SQSEvent
: Amazon Simple Queue Service 메시지용 -
S3Event
: S3 트리거 이벤트용 -
DynamoDBStreamEvent
: Amazon DynamoDB Streams용
-
-
Lambda 컨텍스트 객체
-
콜백 핸들러 패턴
함수에 Lambda 유형 정의를 추가하려면 @types/aws-lambda
를 개발 종속성으로 설치합니다.
npm install -D @types/aws-lambda
그런 다음 aws-lambda
에서 유형을 가져옵니다.
import { Context, S3Event, APIGatewayProxyEvent } from 'aws-lambda';
export const handler = async (event: S3Event, context: Context) => {
// Function code
};
import ... from 'aws-lambda'
문은 유형 정의를 가져옵니다. 관련 없는 타사 도구인 aws-lambda
npm 패키지는 가져오지 않습니다. 자세한 내용은 DefinitelyTyped GitHub 리포지토리의 aws-lambda
참고
자체 사용자 지정 유형 정의를 사용할 때는 @types/aws-lambda