У нас есть лямбда-функция, которая вызывается с помощью JS API.Функция завершается правильно, мы видим лямбда-отчет в журналах.
END RequestId: c78a238e-fefd-11e8-935a-2526b5b5f5c1
REPORT RequestId: c78a238e-fefd-11e8-935a-2526b5b5f5c1 Duration: 465968.78 ms
Billed Duration: 466000 ms Memory Size: 3008 MB Max Memory Used: 290 MB
Как ни странно, вызов API возвращает ошибку «Необработанный».
const params = {
FunctionName: process.env.WORKER_LAMBDA,
InvocationType: 'RequestResponse',
Payload: {}
};
this.lambda.invoke(params).promise()
.then(result => this._handleResult(launchParams, result))
.catch(error => this._handleResult(launchParams, error));
Функция обработчика результатов регистрируетследующее:
Lambda result: { TimeoutError: Connection timed out after 990000.0000000001ms
at ClientRequest.<anonymous> (/opt/timeline/backend/node_modules/aws-sdk/lib/http/node.js:83:34)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:106:13)
at ClientRequest.emit (events.js:208:7)
at TLSSocket.emitTimeout (_http_client.js:706:34)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:106:13)
at TLSSocket.emit (events.js:208:7)
at TLSSocket.Socket._onTimeout (net.js:410:8)
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
at Timer.listOnTimeout (timers.js:290:5)
message: 'Connection timed out after 990000.0000000001ms',
code: 'TimeoutError',
time: 2018-12-13T17:54:06.269Z,
region: 'us-east-1',
hostname: 'lambda.us-east-1.amazonaws.com',
retryable: true }
Почему API возвращает ошибку, а функция успешно завершается, и AWS lambda знает об этом?
Спасибо за любую помощь!
Тамас