Тайм-аут Python Lambda в приложении Swift истекает, но функция работает без проблем - PullRequest
0 голосов
/ 29 января 2019

У меня есть лямбда-функция, написанная на 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

...