![](/img/trans.png)
[英]CORS error while trying to post data with Axios on AWS REST API configuration using a node.js Lambda function
[英]AWS Lambda function sometimes getting error when axios call API
我的 Lambda function 在调用 API 时有时会返回错误。(Lambda 同时调用了 2 个不同的 API)
非常有趣的是,我在启动 API 调用之前放置了一些 console.log,但是当 Lambda 启动时,它会立即返回错误,而不会打印任何日志并出现 2 种类型的错误:
{
“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 function,与 Api 网关中的代理具有相同的域,但我检查过 API 总是按预期返回数据。
注 2:基于此错误, CloudWatch中没有任何日志。
注3: Lambda运行在Node v12上,RAM大于3000MB,超时60秒。
注 4 :我评论了 2 个 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 分钟后返回错误,谁知道呢)但我开始在 AWS 面板中的 Api 网关中进行测试,有时开始出现以下错误:
转换前的端点响应主体:{"Message":null}
我不太确定 Lambda 是一个稳定的平台。
在这个 Lambda 中,我使用 ExpressJS 并将 Sequelize 用作 ORM。
好的,所以这里有两个不同的问题:
为了防止在客户端发生内部服务器错误,我们必须在 .then( ) function 之后提及.catch() 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.