使用 TypeScript 建置 Lambda 函數 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 TypeScript 建置 Lambda 函數

您可以使用 Node.js 執行期在 AWS Lambda 中執行 TypeScript。由於 Node.js 不會在本機執行 TypeScript 程式碼,因此必須先將 TypeScript 程式碼轉換為 JavaScript。然後,使用 JavaScript 檔案,將函數程式碼部署至 Lambda。您的程式碼將使用您所管理的 AWS Identity and Access Management (IAM) 角色的憑證,在含有 AWS SDK for JavaScript 的環境中執行。若要進一步了解 Node.js 執行時期隨附的 SDK 版本,請參閱 包含執行時間的SDK版本

Lambda 支援以下 Node.js 執行期。

名稱 識別符 作業系統 取代日期 封鎖函數建立 封鎖函數更新

Node.js 22

nodejs22.x

Amazon Linux 2023

未排程

未排程

未排程

Node.js 20

nodejs20.x

Amazon Linux 2023

未排程

未排程

未排程

Node.js 18

nodejs18.x

Amazon Linux 2

2025 年 7 月 31 日

2025 年 9 月 1 日

2025 年 10 月 1 日

設定 TypeScript 開發環境

使用本機整合開發環境 (IDE)、文字編輯器或 AWS Cloud9 來編寫 TypeScript 函數程式碼。無法在 Lambda 主控台上建立 TypeScript 程式碼。

若要轉換 TypeScript 程式碼,請設定一個編譯器,如 esbuild 或 Microsoft 的 TypeScript 編譯器 (tsc),該編譯器將與 TypeScript 分佈綁定。您可以使用 AWS Serverless Application Model (AWS SAM)AWS Cloud Development Kit (AWS CDK),來簡化對 TypeScript 程式碼的建置和部署。這兩款工具均使用 esbuild 將 TypeScript 程式碼轉換為 JavaScript。

使用 esbuild 時,請考慮下列事項︰

  • 存在若干 TypeScript caveats

  • 您必須設定 TypeScript 轉換設定,以便與您計劃使用的 Node.js 執行期相符。如需詳細資訊,請參閱 esbuild 文件中的目標。如需 tsconfig.json 檔案的範例,該檔案示範了如何以 Lambda 支援的特定 Node.js 版本為目標,請參閱 TypeScript GitHub 儲存庫

  • esbuild 不執行類型檢查。若要檢查類型,請使用 tsc 編譯器。執行 tsc -noEmit 或將 "noEmit" 參數新增至 tsconfig.json 檔案,如下列範例所示。這會將 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"] }