AWS API Gateway向SQS发送消息时截断&后内容的问题求助
解决API Gateway转发到SQS时消息体截断问题
问题根源:你当前的映射模板直接将
$input.body作为MessageBody参数值拼接在URL里,请求体中的&会被AWS解析为SQS API的参数分隔符,导致MessageBody只保留到&之前的内容,后面的email部分被当成独立参数,不会出现在消息体中。修复方案:对请求体内容做URL编码处理,使用API Gateway内置的
$util.urlEncode()函数包裹$input.body,修改后的映射模板如下:
Action=SendMessage&MessageBody=$util.urlEncode($input.body)
- 注意事项:保持API Gateway的「请求体传递设置」为「当未定义模板时(推荐)」,同时确保该映射模板是针对
Content-Type: application/json类型配置的。
修改完成后重新发起cURL请求,再去SQS控制台查看消息体,就能完整看到包含&email=test@gmail.com的完整内容了。
内容的提问来源于stack exchange,提问作者Krishna Gupta
相关产品推荐
相关产品推荐

