我需要使用 Amazon API Gateway REST API 来将查询字符串参数传递给后端 AWS Lambda 函数或 HTTP 端点。
简短描述
要配置 REST API 以将查询字符串参数传递给后端 AWS Lambda 函数,请使用 Lambda 自定义集成。
要将查询字符串参数传递给 HTTP 端点,请使用 HTTP 自定义集成。
重要事项: 确保将输入数据作为集成请求有效载荷提供。最佳做法是使用映射模板来提供有效载荷。有关详细信息,请参阅 API Gateway 中 REST API 的参数映射示例。
解决方法
将查询字符串参数传递给后端 Lambda 函数
完成以下步骤:
- 打开 API Gateway 控制台,然后选择您的 API。
- 在 Resources(资源)窗格中,选择已配置的 HTTP 方法。
注意: 如果为该 API 配置了多个 HTTP 方法,请针对每个方法重复这些步骤。
- 在 Method Execution(方法执行)窗格中,选择 Method Request(方法请求),然后选择 Edit(编辑)。
- 展开 URL Query String Parameters(URL 查询字符串参数)下拉列表,然后选择 Add query string(添加查询字符串)。
- 在 Name(名称)字段中,输入 pet。
- 选中 Required(必填)复选框,然后选择 Save(保存)。
- 选择 Integration Request(集成请求)选项卡,然后选择 Edit(编辑)。
- 展开 Mapping templates(映射模板),然后选择 Add mapping template(添加映射模板)。
- 在 Content-Type 字段中,输入 application/json。
- 在映射模板编辑器中,复制当前脚本并将其替换为以下代码:
{ "pet": "$input.params('pet')"
}
注意: 有关详细信息,请参阅输入变量。
选择 Save(保存),然后选择 Deploy the API(部署 API)。
要测试 API 的新端点,请运行以下 curl 命令:
curl -X GET https://jp58lnf5vh.execute-api.us-west-2.amazonaws.com/dev/lambda-non-proxy?pet=dog
重要事项: 确保 curl 命令具有查询字符串参数 pet=dog。
将查询字符串参数传递给 HTTP 端点
完成以下步骤:
- 打开 API Gateway 控制台,然后选择您的 API。
- 在 Resources(资源)窗格中,选择已配置的 HTTP 方法。
注意: 如果为该 API 配置了多个 HTTP 方法,请针对每个方法重复这些步骤。
- 在 Method Execution(方法执行)窗格中,选择 Method Request(方法请求),然后选择 Edit(编辑)。
- 展开 URL Query String Parameters(URL 查询字符串参数)下拉列表,然后选择 Add query string(添加查询字符串)。
- 在 Name(名称)字段中,输入 type,然后选择 Save(保存)。
- 选择 Integration Request(集成请求)选项卡,然后选择 Edit(编辑)。
- 展开 URL Query String Parameters(URL 查询字符串参数)部分。
- 在 Name(名称)字段中,输入 type。
- 在 Mapped from(映射自)字段中,输入 method.request.querystring.type。
- 选择 Save(保存),然后选择 Deploy the API(部署 API)。
- 要测试 API 的新端点,请运行以下 curl 命令:
curl -X GET https://jp58lnf5vh.execute-api.us-west-2.amazonaws.com/dev/http-endpoint?pet=dog
重要事项: 确保 curl 命令具有查询字符串参数 pet=dog。
相关信息
教程: 利用 Lambda 代理集成创建 REST API
教程: 利用 Lambda 非代理集成创建 REST API
教程: 利用 HTTP 代理集成创建 REST API
教程: 利用 HTTP 非代理集成创建 REST API