Бессерверный шлюз AWS {«сообщение»: «Внутренняя ошибка сервера»}

#amazon-web-services #express #aws-lambda #aws-api-gateway #serverless

#amazon-web-services #экспресс #aws-lambda #aws-api-gateway #бессерверный

Вопрос:

Я создаю лямбда-шлюз AWS API. После бессерверного развертывания он продолжает возвращать {«сообщение»: «Внутренняя ошибка сервера»} эту ошибку, когда я пытаюсь получить конечную точку. Я попробовал несколько решений, которые нашел в Интернете, но ничего не помогло. Я не уверен, правильно ли я выполняю для обработчика…. Я застрял со вчерашнего утра. Спасибо.

бессерверный.ylm

 service: back-end
provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: us-east-1
  memorySize: 384
functions:
  app:
    handler: app/app.handler
    events:
      - http:
          path: /
          method: ANY
          cors: true
      - http:
          path: /{proxy }
          method: ANY
          cors: true
  

app.js

 var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
const db= require('./dbconfig.js');
const cors = require('cors');
const expressValidator  = require('express-validator');

//routers
var indexRouter = require('./routes/index');
var mentorRouter = require('./routes/api/mentor');
var universityRouter = require("./routes/api/university");
var bookingsRouter = require("./routes/api/bookings");
var authRouter = require('./routes/api/auth');
var settingRouter = require('./routes/api/setting');
var paywallRouter = require('./routes/api/pay');
const serverless = require('serverless-http');

var app = express();


// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(express.static(path.join(__dirname, './public')));
app.use(logger('dev'));
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.use(cookieParser());
app.use(expressValidator());
app.use(cors());


app.use('/', indexRouter);
app.use('/auth', authRouter);
app.use('/mentor', mentorRouter);
app.use('/setting',settingRouter);
app.use('/pay',paywallRouter);
app.use('/api/universities', universityRouter);
app.use('/api/bookings', bookingsRouter);



// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

//module.exports = app;
module.exports.handler = serverless(app);

  

Комментарии:

1. Получили ли вы какое-либо решение для этого. Я сталкиваюсь с такой же проблемой и не получаю ошибок при запуске sls в автономном режиме

2. Возможно, когда это произойдет, вы могли бы сначала взглянуть на health.aws.amazon.com и посмотрите, есть ли какие-либо проблемы

Ответ №1:

Убедитесь, что API Gateway имеет правильные разрешения для вызова лямбда-выражения…

https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-lambda-stage-variable-500/

Если это не устраняет проблему, проверьте CloudWatch на наличие информации об ошибках в группах журналов Lambda. Убедитесь, что журналы CloudWatch также включены..

https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-cloudwatch-logs/