【发布时间】:2026-01-22 02:10:01
【问题描述】:
我创建了一个通过 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 调用都会发生错误。
【问题讨论】:
-
看起来您正在启动一个正在监听端口 3000 的服务器,该端口已被占用。会不会是某个 express.js 服务器?
标签: node.js amazon-web-services express aws-lambda