Тайм-аут Python Lambda в приложении Swift истекает, но функция работает без проблем
У меня есть лямбда-функция, написанная на 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, _kCFStreamErrorDomain
Я вызываю функцию следующим образом:
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-х годов.
Эта ошибка возникает примерно в половине случаев, когда вызывается лямбда.
Есть идеи?
РЕДАКТИРОВАТЬ:
Я попытался увеличить время ожидания NSURLSession для запроса, делая это в appDelegate:
let urlconfig = URLSessionConfiguration.default
urlconfig.timeoutIntervalForRequest = 300
но я все еще получаю тайм-ауты, и максимальное время выполнения лямбда-функции составляло 70 с, так что я думаю, что я на самом деле не устанавливаю правильное время ожидания IntervalForRequest