node.js - 每次调用时出现 AWS Lambda 错误 EADDRINUSE
问题描述
我创建了一个通过 API Gateway 访问的 Nodejs AWS Lambda 函数,直到昨天它都运行良好。但是,如果没有我对任何东西进行任何更改,它就不再起作用了。
每当我尝试调用该函数时,它都会立即以错误终止
{
"errorType": "Error",
"errorMessage": "listen EADDRINUSE: address already in use 0.0.0.0:3000",
"code": "EADDRINUSE",
"errno": -98,
"syscall": "listen",
"address": "0.0.0.0",
"port": 3000,
"stack": [
"Error: listen EADDRINUSE: address already in use 0.0.0.0:3000",
" at Server.setupListenHandle [as _listen2] (net.js:1318:16)",
" at listenInCluster (net.js:1366:12)",
" at Server.listen (net.js:1452:7)",
" at Function.listen (/var/task/node_modules/express/lib/application.js:618:24)",
" at Object.<anonymous> (/var/task/app.js:433:5)",
" at Module._compile (internal/modules/cjs/loader.js:1068:30)",
" at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)",
" at Module.load (internal/modules/cjs/loader.js:933:32)",
" at Function.Module._load (internal/modules/cjs/loader.js:774:14)",
" at Module.require (internal/modules/cjs/loader.js:957:19)"
]
}
我的功能甚至什么都不做。我试图删除所有内容以检查它是否是人为错误,但错误仍然存在。现在,我的函数唯一要做的就是:
var AWS = require("aws-sdk");
AWS.config.update({ region: "eu-central-1" });
var express = require("express");
var bodyParser = require("body-parser");
var awsServerlessExpressMiddleware = require("aws-serverless-express/middleware");
var app = express();
app.use(bodyParser.json());
app.use(awsServerlessExpressMiddleware.eventContext());
app.get("/bids/:auctionid", async function (req, res) {
res.json({ success: "true", url: req.url, body: "call success" });
});
该错误发生在每个 lambda 调用上。
解决方案
推荐阅读
- dependency-injection - 在 application.cfc FW1 中注入依赖项
- node.js - 使用 node-postgres 与数据库失去连接
- flutter - 使用刷新指示器 Flutter 无限滚动 HTTP JSON
- python - JMESPath 在嵌套数据中搜索键
- java - Android dagger2 使用 Factory 将意图注入 viewModel
- algorithm - 为什么对固定长度的数组(例如只有五个元素的数组)进行排序需要花费 O(1)?
- angular - Angular 'mdb-navbar-brand' 不是已知元素:
- python - Pyspark:如果列包含来自另一列的字符串(SQL LIKE 语句),则过滤数据框
- jquery - 如何在 IE11 中使用 jQuery 或 js 获取多个选定选项而不使用 Ctrl 键
- javascript - 为什么我的函数不获取变量的值?