我正在重新构建现有的应用程序以使用AWS API Gateway和AWS Lambda。当前的应用程序将其作为REST API公开,它作为Spring Boot应用程序和Spring REST Controller注释实现。
虽然我能够从API网关获取请求主体JSON到Lambda函数,但在某些情况下,我需要来自Request对象的变量以及Lambda函数中可访问的路径变量。我确实看了一下Lambda Context对象,但它没有任何可以帮助我的东西。
示例API网址:我使用类似于id变量的路径变量 以下API调用
GET http://www.example.com/users/{id}/alerts
。 {id} 将是此处的路径变量。我们如何使用请求变量的示例位于以下URL中,其中警报ID作为查询字符串参数传递 -GET http://www.example.com/users/{id}/alerts?id=1234
有没有推荐的方法来完成这项工作?我不想使用RequestHandler接口,因为我的目标是将每个API绑定到一个单独的Lambda函数。
答案 0 :(得分:1)
如果您使用的是AWS集成类型:
使用映射模板将请求正文中的$ input.params(' id')属性发送到Lambda函数。
如果您使用的是AWS_PROXY集成类型:
您可以通过" pathParameters"访问路径参数。传入事件的属性。有关详细信息,请阅读docs。
答案 1 :(得分:1)
我建议您使用Lambda Proxy集成类型,它以最少的麻烦提供您需要的所有信息。 因此,您需要阅读的属性将如下所示:
// listen to customPopupSelected variable changes
$scope.$watch('customPopupSelected', function (nVal) {
// enter this block only if new value is not an object
if (nVal && angular.isString(nVal)) {
// convert customPopupSelected from a string to desired object
$scope.customPopupSelected = {
name: nVal,
flag: 'URL-TO-SOME-DEFAULT-FLAG'
};
}
});
路径:/users/...
event.path
event.queryStringParameters.id
event.httpMethod
如果您需要更多信息,请与我们联系。