Lambda 托管实例运行时 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Lambda 托管实例运行时

使用 Lambda 托管实例时,Lambda 处理请求的方式有所不同。与在每个执行环境中依次处理请求不同,Lambda 托管实例会在每个执行环境中同时处理多个请求。执行模型的这一变化意味着使用 Lambda 托管实例的函数需要考虑线程安全、状态管理和上下文隔离等问题,而这些在 Lambda(默认)单并发模式中是不存在的。此外,不同运行时中的多并发实施方式各有不同。

支持的运行时

以下运行时支持 Lambda 托管实例:

  • Java:Java 21 及更高版本。

  • Python:Python 3.13 及更高版本。

  • Node.js:Node.js 22 及更高版本。

  • .NET:.NET 8 及更高版本。

特定于运行时的注意事项

每个运行时实施多并发的方式各不相同。您需要了解如何使用所选编程语言实施多并发,以便应用相应的并发最佳实践。

Java

采用单一进程并结合操作系统线程来实现并发。多个线程会同时执行处理程序方法,因此需要对状态和共享资源进行线程安全的处理。

Python

使用多个 Python 进程,在这些进程中,每个并发请求都在单独的进程中运行。这能有效避免大多数并发问题,但对于 /tmp 目录这类共享资源则仍需要小心处理。

Node.js

使用具有异步执行功能的工作线程。并发请求分布在工作线程中,而每个工作线程还可以异步处理并发请求,这就需要对状态和共享资源进行安全的处理。

.NET

使用 .NET 任务实现对多个并发请求的异步处理。需要对状态和共享资源进行安全处理。

后续步骤

有关每个运行时的详细信息,请参阅以下主题: