我开发了一个无服务器API,它在无服务器离线的情况下工作得很好。它返回来自AWS RDS DB的行。但是当相同的部署在AWS Lambda上时,路由给了我内部服务器错误。我试过了:
- 已经为我的网关完成了部署API。
- 已返回成功呼叫的状态
我的代码如下:
app.js文件:
const express = require('express');
const app = express();
const bodyParser = require("body-parser");
app.use(bodyParser.json());
const cors = require('cors')
app.use(cors());
const client = require('./connection.js')
client.connect();
app.get('/', (req, res) => {
res.send('Welcome to API that helps connect with Recruitment DB')
})
app.get('/users', async function (req, res) {
try {
const allProfiles = await client.query("SELECT * FROM public.portal_users");
res.status(200).send(allProfiles.rows);
} catch (error) {
res.status(500).send("Error received: "+ error.message);
}
})
module.exports = app
serverless。yml文件:
service: portalserver
frameworkVersion: '3'
provider:
name: aws
memorySize: 2048
stage: dev
timeout: 15
runtime: nodejs12.x
region: ap-south-1
functions:
hello:
handler: handler.hello
events:
- http:
path: /
method: get
cors: true
- http:
path: /{proxy+}
method: any
cors: true
plugins:
- serverless-offline
custom:
serverless-offline:
noPrependStageInUrl: true
get/工作正常,但/用户返回内部服务器错误
好的,所以问题与访问有关。我为我的lambda函数创建了一个VPC来访问安全的AWS RDS数据库,它工作了。