使用 TypeScript 构建 Lambda 函数 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 TypeScript 构建 Lambda 函数

你可以使用 Node.js 运行时在 Amazon Lambda 中运行 TypeScript 代码。由于 Node.js 不会在本机运行 TypeScript 代码,因此必须首先将 TypeScript 代码转换为 JavaScript。然后,可以使用 JavaScript 文件将您的函数代码部署到 Lambda。您的代码将在包含适用于 JavaScript 的 Amazon SDK 的环境中运行,其中包含来自您管理的 Amazon Identity and Access Management (IAM) 角色的凭证。要了解有关 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

Node.js 16

nodejs16.x

Amazon Linux 2

2024 年 6 月 12 日

2025 年 2 月 28 日

2025 年 3 月 31 日

设置 TypeScript 开发环境

您可以使用本地集成开发环境 (IDE)、文本编辑器或 Amazon Cloud9 来编写 TypeScript 函数代码。您无法在 Lambda 控制台上创建 TypeScript 代码。

要转换您的 TypeScript 代码,请设置一个编译器,例如 esbuild 或者 Microsoft 的 TypeScript 编译器 (tsc),后者与 TypeScript 分发版捆绑在一起。您可以使用 Amazon Serverless Application Model (Amazon SAM)Amazon Cloud Development Kit (Amazon CDK) 来简化 TypeScript 代码的构建和部署。两种工具都使用 esbuild 将 TypeScript 代码转换为 JavaScript。

在使用 esbuild 时,请注意以下事项:

  • 有几个 TypeScript 注意事项

  • 您必须配置 TypeScript 转换设置,以匹配您计划使用的 Node.js 运行时。有关更多信息,请参阅 esbuild 文档中的目标。有关演示如何将 Lambda 支持的特定 Node.js 版本设为目标的 tsconfig.json 文件示例,请参阅 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"] }