Моя лямбда-функция возвращает ошибки иногда при вызове API. (есть 2 разных API, которые Lambda вызывает одновременно)
Очень интересно, что я поместил несколько console.log перед запуском вызова API, но когда Lambda запускает, он сразу же возвращает ошибку, не печатая журнал и не получая ошибок двух типов:
{
“errorType”: “Runtime.UnhandledPromiseRejection”,
“errorMessage”: “Error: socket hang up”,
“trace”: [
“Runtime.UnhandledPromiseRejection: Error: socket hang up”,
” at process.<anonymous> (/var/runtime/index.js:35:15)“,
” at process.emit (events.js:310:20)“,
” at processPromiseRejections (internal/process/promises.js:209:33)“,
” at processTicksAndRejections (internal/process/task_queues.js:98:32)”
]
}
{
“errorType”: “Runtime.UnhandledPromiseRejection”,
“errorMessage”: “Error: Client network socket disconnected before secure TLS connection was established”,
“trace”: [
“Runtime.UnhandledPromiseRejection: Error: Client network socket disconnected before secure TLS connection was established”,
” at process.<anonymous> (/var/runtime/index.js:35:15)“,
” at process.emit (events.js:310:20)“,
” at processPromiseRejections (internal/process/promises.js:209:33)“,
” at processTicksAndRejections (internal/process/task_queues.js:98:32)”
]
}
Примечание 1. API - это еще одна функция Lambda с тем же доменом, что и прокси в шлюзе Api, но я проверил, что API всегда возвращает данные, как ожидалось.
Примечание 2: где нет журналов в CloudWatch, основанных на этой ошибке.
Примечание 3. Lambda работает на узле v12, объем ОЗУ превышает 3000 МБ, а время ожидания составляет 60 секунд.
Примечание 4: я прокомментировал один из двух API и сейчас получаю ошибку ниже:
{
"errorType": "Runtime.UnhandledPromiseRejection",
"errorMessage": "Error: read ECONNRESET",
"trace": [
"Runtime.UnhandledPromiseRejection: Error: read ECONNRESET",
" at process.<anonymous> (/var/runtime/index.js:35:15)",
" at process.emit (events.js:310:20)",
" at processPromiseRejections
(internal/process/promises.js:209:33)",
" at processTicksAndRejections
(internal/process/task_queues.js:98:32)"
]
}
Обработчик:
'use strict'
console.log("in APP 1");
const awsServerlessExpress = require('aws-serverless-express');
console.log("APP 2");
//express app
const app = require('./start-server');
console.log("in APP 3");
const binaryMimeTypes = [
'application/json',
'text/html',
];
console.log("in APP 4");
const server = awsServerlessExpress.createServer(app,null,binaryMimeTypes);
console.log("in APP 5");
exports.handler = (event, context) => awsServerlessExpress.proxy(server, event, context)
Примечание 5:
Я всегда могу связаться с API-адресом bu url (как я тестировал прямо сейчас, в ответах нет проблем, но, возможно, через 10 минут возвращается ошибка, кто знает), но я начинаю тестировать в шлюзе Api на панели AWS и иногда начинаю получать ошибку ниже:
Тело ответа конечной точки до преобразований: {Message: null}
Я не совсем уверен, что Lambda - стабильная платформа.
В этой Lambda я использую ExpressJS и использую Sequelize как ORM.