TypeScript를 사용하여 Lambda 함수 빌드 - AWS Lambda

TypeScript를 사용하여 Lambda 함수 빌드

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
명칭 식별자 운영 체제 사용 중단 날짜 블록 함수 생성 블록 함수 업데이트

Node.js 20

nodejs20.x

Amazon Linux 2023

Node.js 18

nodejs18.x

Amazon Linux 2

TypeScript 개발 환경 설정

로컬 IDE(통합 개발 환경), 텍스트 편집기 또는 AWS Cloud9을 사용하여 TypeScript 함수 코드를 작성합니다. Lambda 콘솔에서는 TypeScript 코드를 생성할 수 없습니다.

TypeScript 코드를 트랜스파일하려면 TypeScript 배포와 함께 번들로 제공되는 esbuild 또는 Microsoft의 TypeScript 컴파일러(tsc)와 같은 컴파일러를 설정하세요. AWS Serverless Application Model(AWS SAM) 또는 AWS Cloud Development Kit (AWS CDK)를 사용하여 TypeScript 코드의 빌드 및 배포를 간소화할 수 있습니다. 두 도구 모두 esbuild를 사용하여 TypeScript 코드를 JavaScript로 트랜스파일합니다.

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"] }