首页 > 解决方案 > 每次调用时出现 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 调用上。

标签: node.jsamazon-web-servicesexpressaws-lambda

解决方案


推荐阅读