AWS Lambda是一种无服务器计算服务,可以用来处理来自API Gateway的RESTful API请求。如果API Gateway有多个端点或路由,需要在AWS Lambda中正确处理来自不同路由的请求。
以下是使用Node.js编写的AWS Lambda函数示例,显示如何在单个函数中处理不同路由的API Gateway请求:
exports.handler = function(event, context, callback) {
var route = event.resource; // 获取API Gateway请求的路由
// 根据路由处理请求
switch(route) {
case '/users':
handleUsersRoute(event, callback);
break;
case '/products':
handleProductsRoute(event, callback);
break;
default:
callback('Invalid route', null);
}
}
function handleUsersRoute(event, callback) {
// 处理'/users'路由中的请求
}
function handleProductsRoute(event, callback) {
// 处理'/products'路由中的请求
}
在上面的AWS Lambda函数示例中,通过使用 event.resource 变量获取API Gateway请求的路由。然后,使用 switch 语句根据路由选择相应的函数处理请求。
例如,如果API Gateway从路由'/users'发起请求,AWS Lambda函数将调用handleUsersRoute()函数。同时,如果API Gateway从路由'/products'发起请求,AWS Lambda函数将调用handleProductsRoute()函数。 如果提供了无效路由,则调用回调函数callback(),返回'Invalid route'错误消息。