假设APIGateway触发一个等待10秒的函数(处理程序)
public async Task<APIGatewayProxyResponse> Get(APIGatewayProxyRequest request, ILambdaContext context){
var x = await Wait10Async();
return SomeAPIGatewayProxyResponse;
}
Q1:当await
将控制流返回到函数处理程序本身时,此容器(执行环境)会发生什么?显然Lambda等待任务到在返回APIGateway之前完成,但在这10秒内,容器(或其他)是否接受并执行更多Get
函数?
问题背后的原因是AWS Lambda有1000个并发执行限制,它说每个执行都在不同的容器中运行,因此它让我对这个场景提出质疑:
1 - APIGateway会同时收到1000个请求并启动1000个Lambda处理程序,并在10秒后完成
2 - 第一次请求后3秒(完成之前)另一个让100个请求来到APIGateway。在这种情况下,所有lambda容器都已耗尽。
这是发生了什么或await
有解决这个问题的魔力?我知道await
如何阻止经典视图应用程序中的循环。但它在Lambda执行环境中的表现如何?