Nei*_*ias 7 json amazon-sqs aws-api-gateway
我创建了一个 API 网关,用于接收 JSON 数据并将其发布到 SQS 队列。我的问题是:如果我用正信号(+)发布数据,例如,{“date”:“25 + 2”} 正信号将被空格替换,数据将像这样到达SQS队列:{ “日期”:“25 2”} .
不过,如果我通过 AWS 控制台发送相同的消息{"date": "25+2"},收到的消息将保持不变,并带有加号。
为什么?
我需要添加额外的配置吗?
我的API网关配置:
我的帖子:
curl --location --request POST 'https://xxxxxxxx.execute-api.us-east-1.amazonaws.com/yyyy' \
--header 'Content-Type: application/json' \
--data-raw '{"data": "25+2"}'
Run Code Online (Sandbox Code Playgroud)
SQS队列中收到的数据:
PS:当我通过 .NET C# 等应用程序收到此消息时,数据也到达时没有积极信号。
Nei*_*ias 10
经过朋友的帮助并仔细阅读AWS文档,我找到了解决方案。
www-form-urlencodedAWS SQS 队列期望以 JSON(或 XML)格式接收消息。
因此,针对问题的情况,我们有两种解决方案:
调用 API 时已发送编码消息。
或者...在API网关中配置模板,将body中收到的消息转换为格式application/x-www-form-urlencoded,使用$util.urlEncode函数,如下所示:
映射模板:
Action=SendMessage&MessageBody=$util.urlEncode($input.body)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1390 次 |
| 最近记录: |