У меня есть лямбда-функция, написанная на python, которая запускает алгоритм обработки сигналов с данными, предоставленными приложением iOS.
Приложение iOS успешно вызывает функцию, но через некоторое время выдает ошибку тайм-аута:
Задача сеанса завершилась ошибкой: Ошибка Domain = NSURLErrorDomain Code = -1001 "Время ожидания истекло."UserInfo = {_ kCFStreamErrorCodeKey = -2102, NSUnderlyingError = 0x282711350 {Error Domain = kCFErrorDomainCFNetwork Code = -1001 "(нуль)" UserInfo = {_ kCFStreamErrorCodeKey = -2102, _kCFStreamErrorDomainKey = 4}}, _NSURLErrorFailingURLSessionTaskErrorKey = LocalDataTask. <6>, _NSURLErrorRelatedURLSessionTaskErrorKey = ("LocalDataTask. <6>"), NSLocalizedDescription = Превышен тайм-аут запроса., NSErrorFailingURLStringKey = https://mylambdaURL/invocations, NSErrorFailingURLKey = https://mylambdaURL/invocations, _kCFStreamErrorDomainKey = 4}
* 1012 вызывать функциюнапример:
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
})
Однако в журналах для лямбда-функции не отображаются ошибки, функция выполняется успешно и даже без проблем записывает данные в таблицу DynamoDB.Таким образом, лямбда-тайм-аут не истекает, однако функция работает около 60 с.
Эта ошибка возникает примерно в половине случаев, когда вызывается лямбда.
Есть идеи?
EDIT:
Я пытался увеличить время ожидания NSURLSession для запроса, делая это в appDelegate:
let urlconfig = URLSessionConfiguration.default
urlconfig.timeoutIntervalForRequest = 300
, но я все еще получаю тайм-ауты, и максимальное время выполнения лямбда-функции составляло 70 с,так что я думаю, что я на самом деле не устанавливаю правильное время ожиданияIntervalForRequest