如何在 AWS Lambda 函数中访问来自 AWS API 网关 URI 的请求和路径变量
How do I get access to the request and path variables from AWS API Gateway URI in an AWS Lambda function
我正在对现有应用程序进行平台改造以使用 AWS API 网关和 AWS Lambda。当前应用程序将其功能公开为 REST API,它作为 Spring 引导应用程序和 Spring REST 控制器注释实现。
虽然我能够从 API 网关将请求主体 JSON 获取到 Lambda 函数中,但在某些情况下,我需要来自 Request 对象的变量以及可访问的路径变量拉姆达函数。我确实查看了 Lambda 上下文对象,但它在这方面没有任何可以帮助我的东西。
Example API URLs: I use a path variable similar to the id variable in
the following API call GET http://www.example.com/users/{id}/alerts
.
{id} will be the path variable here. An example of how we use a request variable is in the following URL where the alert id is passed as a query string parameter - GET
http://www.example.com/users/{id}/alerts?id=1234
是否有推荐的方法来完成此操作?我不想使用 RequestHandler 接口,因为我的目标是将每个 API 绑定到一个单独的 Lambda 函数。
如果您使用的是 AWS 集成类型:
使用映射模板将请求正文中的 $input.params('id') 属性 发送到您的 Lambda 函数。
如果您使用 AWS_PROXY 集成类型:
您可以通过传入事件的"pathParameters" 属性 访问路径参数。更多详情,请阅读docs.
我建议您使用 Lambda Proxy 集成类型,它可以让您轻松获得所需的所有信息。
因此,您需要阅读的属性将可用如下:
- 你的
/users/...
路径:event.path
- 您在查询字符串中的 ID:
event.queryStringParameters.id
- 您还需要 http 方法:
event.httpMethod
- 你的路径参数像id一个:
event.pathParameters
如果您需要更多信息,请告诉我。
我正在对现有应用程序进行平台改造以使用 AWS API 网关和 AWS Lambda。当前应用程序将其功能公开为 REST API,它作为 Spring 引导应用程序和 Spring REST 控制器注释实现。
虽然我能够从 API 网关将请求主体 JSON 获取到 Lambda 函数中,但在某些情况下,我需要来自 Request 对象的变量以及可访问的路径变量拉姆达函数。我确实查看了 Lambda 上下文对象,但它在这方面没有任何可以帮助我的东西。
Example API URLs: I use a path variable similar to the id variable in the following API call
GET http://www.example.com/users/{id}/alerts
. {id} will be the path variable here. An example of how we use a request variable is in the following URL where the alert id is passed as a query string parameter -GET http://www.example.com/users/{id}/alerts?id=1234
是否有推荐的方法来完成此操作?我不想使用 RequestHandler 接口,因为我的目标是将每个 API 绑定到一个单独的 Lambda 函数。
如果您使用的是 AWS 集成类型:
使用映射模板将请求正文中的 $input.params('id') 属性 发送到您的 Lambda 函数。
如果您使用 AWS_PROXY 集成类型:
您可以通过传入事件的"pathParameters" 属性 访问路径参数。更多详情,请阅读docs.
我建议您使用 Lambda Proxy 集成类型,它可以让您轻松获得所需的所有信息。 因此,您需要阅读的属性将可用如下:
- 你的
/users/...
路径:event.path
- 您在查询字符串中的 ID:
event.queryStringParameters.id
- 您还需要 http 方法:
event.httpMethod
- 你的路径参数像id一个:
event.pathParameters
如果您需要更多信息,请告诉我。