Тайм-аут 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

0 ответов

Другие вопросы по тегам