我有一个包含多条路线的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 Lambda,部署似乎有效。
之后,我正在配置AWS API Gateway以调用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 Lambda,并将我引导至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!');
});
获取{"消息":"内部服务器错误"}用于在EC2上访问MongoDB的第三个路由。查看权限问题。
答案 0 :(得分:0)
最后,这个问题与ClaudiaJS无关。
只需要使用EC2的内部IP,而不是外部IP,如此处所述Invalid permission from Lambda to MongoDB in EC2