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 任务实现对多个并发请求的异步处理。需要对状态和共享资源进行安全处理。
后续步骤
有关每个运行时的详细信息,请参阅以下主题: