У меня есть проект 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 для вызова разных путей к ресурсам в лямбда-функции. Я обнаружил, что он правильно работает для корневого пути «/», но когда я пытаюсь вызвать путь к ресурсу, отличный от API-шлюза, я получаю эту ошибку в API-шлюзе:
"You do not have permission to perform this action"
Дополнительно я получаю это сообщение в лямбда-функции:
"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. См. Здесь: Возможно ли связать API-шлюз с маршрутами узлов в 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!');
});
Получение {"message": "Внутренняя ошибка сервера"} для доступа к MongoDB на третьем маршруте в EC2. Выглядит разрешение вопроса.