我创建了一个 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# 等应用程序收到此消息时,数据也到达时没有积极信号。
我在路由器后面使用 AWS SDK SQS(带有 Nodejs),为了通过路由器,我需要在请求中包含一个自定义标头。
我看过这个文档(https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Request.html#build-event),它讨论了REQUEST 中的.on ('build')事件:
var req = s3.putObject(params);
req.on('build', function() {
req.httpRequest.headers['Custom-Header'] = 'value';
});
req.send(function(err, data) { ... });
Run Code Online (Sandbox Code Playgroud)
但是,使用SQS 服务不起作用,没有抛出任何错误并且自定义标头未包含在 REQUEST 中。
是否可以使用 AWS SDK 包含自定义标头 SQS 服务的?如何使这项工作?
我在 Visual Studio 2019(调试模式下的 F5)中运行 Web api(ASPNETCore 3.1 - API),我使用 Docker(用于 Linux),当我更改 Dockerfile 并运行应用程序时,更改不起作用。
示例:我将RUN touch test.txt和ENV my_variable value放在 Dockerfile 中,但未创建文件和变量。
有谁知道为什么?