执行等待异步操作时的AWS Lambda行为?

时间:2017-11-17 10:52:33

标签: c# amazon-web-services .net-core aws-lambda aws-api-gateway

假设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执行环境中的表现如何?

0 个答案:

没有答案