[英]AWS - Serverless - “message”: “Internal server error” when deploying, but work offline
[英]AWS gateway serverless {"message": "Internal server error"}
我創建了一個 AWS API Gateway Lambda。 無服務器部署后,當我嘗試獲取端點時,它會不斷返回 {"message": "Internal server error"} 這個錯誤。 我嘗試了從互聯網上找到的多種解決方案,但沒有任何幫助。 我不確定我對處理程序的處理是否正確......我從昨天早上就被困住了。 謝謝你。
無服務器.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
應用程序.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);
確保 API Gateway 具有調用 Lambda 的正確權限...
https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-lambda-stage-variable-500/
如果這不能解決問題,請檢查 CloudWatch 以了解 Lambda 日志組中的任何錯誤見解。 確保 CloudWatch Logs 也已啟用..
https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-cloudwatch-logs/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.