如何自定义AWS API Gateway与SQS集成的响应输出格式?
自定义AWS API Gateway与SQS集成的响应格式
你可以通过API Gateway的响应映射模板实现自定义响应格式,无需额外编写Lambda函数,具体操作步骤如下:
- 登录AWS控制台,进入API Gateway服务,找到已集成SQS的目标API和对应方法。
- 进入该方法的集成响应配置页面,选择需要自定义响应的HTTP状态码(比如默认的200 OK)。
- 在该状态码的设置中,找到映射模板区域,点击"添加映射模板",输入
application/json并确认。 - 在模板编辑框中,输入以下Velocity Template Language (VTL)代码:
{ "RequestId": "$input.path('$.SendMessageResponse.SendMessageResult.MessageId')", "Message": "Request Accepted" }
- 保存配置后,重新部署你的API。
模板说明
$input.path('$.SendMessageResponse.SendMessageResult.MessageId'):通过JSON路径从SQS返回的响应中提取MessageId字段,作为自定义响应里的RequestId。- 固定字符串
"Request Accepted"直接作为自定义响应的Message内容。
如果你的API是HTTP API(API Gateway v2),操作逻辑类似:在集成的"响应模板"中添加对应Content-Type的模板,使用同样的VTL语法即可。
内容的提问来源于stack exchange,提问作者Sergey K
相关产品推荐
相关产品推荐

