我们有一个.Net Core Lambda函数,在此之下,我们有一个异步的for循环,该循环为每个循环项调用存储过程。它工作正常,但有时会引发异常“命令超时在操作完成之前到期。”
并且我们在AWS云监视日志中遇到此异常。请在这里提出可能的原因。
locations.ForEach(async location =>
{
await _dataServiceWrite.SaveDeletedLocationDelegateAssignment(location.LocationId, obj.DelegateId, hsId, userId);
await Task.Delay(100);
});
答案 0 :(得分:1)
AWS lambda的最大时间限制为15分钟,此后将超时。这是Lambda中的可配置设置,请查看是否可以将其增加到最大以满足您的要求。不过,当需要处理更多记录时,该体系结构可能无法扩展。
答案 1 :(得分:0)
另一种选择是调用另一个lambda函数,它们将异步进行处理。
用于调用另一个lambda的API是Invoke
,您需要提供InvokeInput
作为输入参数。