在快速应用程序上,Python Lambda响应超时,但该函数运行正常

时间:2019-01-29 12:23:23

标签: python ios swift aws-lambda aws-sdk-ios

我有一个用python编写的lambda函数,该函数使用iOS应用程序提供的数据运行信号处理算法。

iOS应用成功调用了该函数,但过一会儿出现超时错误:

  

会话任务失败,并出现错误:Error Domain = NSURLErrorDomain   代码= -1001“请求超时。”   UserInfo = {_ kCFStreamErrorCodeKey = -2102,NSUnderlyingError = 0x282711350   {Error Domain = kCFErrorDomainCFNetwork代码= -1001“(空)”   UserInfo = {_ kCFStreamErrorCodeKey = -2102,_kCFStreamErrorDomainKey = 4}},   _NSURLErrorFailingURLSessionTaskErrorKey = LocalDataTask。<6>,   _NSURLErrorRelatedURLSessionTaskErrorKey =(       “” LocalDataTask。<6>“),NSLocalizedDescription =请求超时。   NSErrorFailingURLStringKey = https://mylambdaURL/invocations,   NSErrorFailingURLKey = https://mylambdaURL/invocations,   _kCFStreamErrorDomainKey = 4}

我这样调用函数:

lambdaInvoker.invokeFunction("myLambdaName", jsonObject: jsonObject)
            .continueWith(block: {(task:AWSTask<AnyObject>) -> Any? in

                if( task.error != nil) {
                    print("Error: \(task.error!)")
                    lambdaLogs.errors += 1
                    return nil
                }
                if let JSONDictionary = task.result as? NSDictionary {
                    lambdaLogs.responses += 1
                }
                return nil
            })

但是,Lambda函数的日志没有显示任何错误,该函数成功运行,甚至可以毫无问题地写入dynamoDB表中。因此Lambda不会超时,但是该功能运行约60秒钟。

此错误发生的时间大约是lambda调用的一半。

有什么想法吗?

编辑:

我尝试在appDelegate中为请求增加NSURLSession超时:

let urlconfig = URLSessionConfiguration.default
urlconfig.timeoutIntervalForRequest = 300

但是我仍然得到超时,lambda函数的最大运行时间是70秒,所以我想我并没有真正设置正确的timeoutIntervalForRequest

0 个答案:

没有答案