首次请求时,AWS Lambda上的.NET Core Web Api速度很慢

时间:2018-12-07 09:31:08

标签: amazon-web-services .net-core aws-lambda serverless-framework serverless

我将.net core 2.1应用程序部署在AWS Lambda上,我使用AspNetCoreServer Package进行代理路由到我的控制器,但我发现此解决方案存在问题,在我的第一个请求中,lambda执行该请求的速度非常慢动作控制器,但是在其他人的请求很快,我查看了CloudWatch日志以了解发生了什么,并且我在日志中看到最长的时间在ControllerActionInvoker:Route Match中,以调用我的动作,我想知道自己是否做错了什么还是.net核心对于AWS Lambda来说很慢。

我的日志凭证:

这是我的第一个请求日志: Here is my first request log

第二个请求日志: second request log

谢谢

2 个答案:

答案 0 :(得分:1)

冷启动(第一次lambda调用)不是.Net Core的特定问题。 您可以在this article中找到不同语言的时序比较。

答案 1 :(得分:0)

实际上,第一个缓慢的请求不仅是由lambda冷启动引起的。 在Lambda中使用.Net Core,您有2个冷启动:lambda本身的冷启动和.net Core本身的冷启动。 为了避免这2次冷启动,您必须:

  • Lambda冷启动:每隔5分钟调用一次即可温暖您的Lambda
  • .Net Core冷启动:通过在启动时调用所有端点来温暖.Net Core api

请参阅此github issue,以了解有关.Net Core中第一个缓慢请求的更多信息(仍然希望在下一个dotnet Core版本中可以解决此问题或更好地解决此问题,但是现在您没有更好的选择)