我有一个有几条路线的ExpressJS项目
var app = new express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.static(path.join(__dirname, 'public')));
app.use('/car', car);
app.use('/bike', bike);
app.use('/bus', bus);
app.use('/train', train);
app.get('/',function(req,res){
res.render('layout', { title: 'app example' });
});
module.exports = app我已经将ClaudiaJS部署到AWS,并且部署似乎有效。
之后,我将配置AWS网关,以调用Lambda函数中的不同资源路径。我发现它对根路径“/”正常工作,但是当我尝试调用与API网关不同的资源路径时,我在API网关中得到了这个错误:
"You do not have permission to perform this action"此外,我在Lambda函数中得到了以下消息:
"The API with ID XXXXXXXXX does not include a resource with path /car having an integration arn:aws:lambda:myzone:XXXXXXXXXXXXX:function:functioname on the GET method."这是否可以用ClaudiaJS或Lambda函数中支持的配置(多个资源路径)来实现?有什么经验吗?
更新1:对于AWS Lambdas来说,这似乎是可能的。参见这里:Is it possible to connect API gateway with node routes in AWS lambda?不确定ClaudiaJS是否能够管理这个用例
更新2: ClaudiaJS在他们的支持组https://gitter.im/claudiajs/claudia中确认,将多路由ExpressJS应用部署到单个AWS是可能的,并将我推荐给https://livebook.manning.com/#!/book/serverless-apps-with-node-and-claudiajs/chapter-13/v-5/167,因此它在我这边看起来有些配置/调用错误。
更新3:成功调用2条路由:
app.get('/test', function (req, res) {
res.send('Hello World test!');
});
app.get('/', function (req, res) {
res.send('Hello World!');
});获取{“消息”:“内部服务器错误”},用于在MongoDB上访问EC2的第三条路由。看上去是许可问题。
发布于 2018-05-07 17:35:41
最后,这个问题与ClaudiaJS无关。
它只需要使用EC2的内部IP,而不是外部IP,如本文所述,Invalid permission from Lambda to MongoDB in EC2
https://stackoverflow.com/questions/50205102
复制相似问题