AWS Lambda上的.NET Core Web Api在第一次请求时很慢

问题描述 投票:2回答:2

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

我的日志证据:

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

我的第二个请求日志:second request log

谢谢

amazon-web-services .net-core aws-lambda serverless-framework serverless
2个回答
1
投票

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


1
投票

事实上,第一个慢速请求不仅是由lambda冷启动引起的。使用lambda中的.Net Core,你有2个冷启动:lambda本身的冷启动和.net核心本身的冷启动。为了避免这两个冷启动你必须:

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

请参阅此github issue以了解有关.Net Core中第一个慢速请求的更多信息(仍希望在下一个dotnet核心版本中修复或更好地管理此问题,但现在您没有更好的选择)

© www.soinside.com 2019 - 2024. All rights reserved.