C# AWS lambda timeourt例外

C# AWS lambda timeourt例外,c#,.net,for-loop,async-await,aws-lambda,C#,.net,For Loop,Async Await,Aws Lambda,我们有一个.Net核心lambda函数,在此函数下,我们有一个异步for循环,它为每个循环项调用一个存储过程。它工作正常,但有时会抛出异常 命令超时在操作完成之前过期 我们在AWS云监控日志中发现了这个异常。请说明原因 locations.ForEach(async location => { await _dataServiceWrite.SaveDeletedLocatio

我们有一个.Net核心lambda函数,在此函数下,我们有一个异步for循环,它为每个循环项调用一个存储过程。它工作正常,但有时会抛出异常

命令超时在操作完成之前过期

我们在AWS云监控日志中发现了这个异常。请说明原因

 locations.ForEach(async location =>
                        {
                                await _dataServiceWrite.SaveDeletedLocationDelegateAssignment(location.LocationId, obj.DelegateId, hsId, userId);
                                await Task.Delay(100);
                        });

AWS lambda的最大时间限制为15分钟,超过15分钟将超时。这是Lambda中的可配置设置,请查看是否可以将其增加到最大值以满足您的要求。不过,当需要处理更多记录时,该体系结构可能无法扩展。

另一个选项可能是调用另一个lambda函数,该函数将异步进行处理


调用另一个lambda的API是Invoke,您需要提供InvokeInput作为输入参数。

增加超时时间并进行更多尝试。是Sql的超时吗?在AWS lambda中运行这个?或者它只是c lambda表达式?。ForEach看起来是一种不好的异步方式。此代码段位于.Net核心AWS lambda函数中。我们已经为AWS lambda函数设置了最长15分钟的时间。请重新查看此过程的体系结构。一种解决方案是使用SQS推送所有请求,并使用SQS侦听器AWS Lambda拉取并处理请求。流程完成后,可以使用另一个SQS推送所有已处理请求的更新状态。带有SQS SDK的UI侦听器可以侦听这个新队列并相应地呈现UI。实际上,很抱歉,我们有相同的流程,其中我们有一个SNS->SQS->和lambda从队列中一次选择一个项目并处理它。问题是在lambdaPlease 1中处理大量位置。AWS批次或2。AWS胶水