Rob*_*ert 6 .net c# amazon-sqs amazon-web-services amazon-sns
我正在使用.net sdk将消息推送到SNS,然后SNS将消息发布到订阅的SQS队列,但是SNS添加了元数据,例如消息类型等,并且我最终得到了我不想要的更大的JSON负载,尤其是当SQS受到限制时每条消息 256k。
是否可以向 SNS 发送命令并告诉它不要发送该元数据?
这是代码:
var credentials = new StoredProfileAWSCredentials("dev");
using (var client = new AmazonSimpleNotificationServiceClient(credentials, Amazon.RegionEndpoint.EUWest1))
{
var request = new PublishRequest();
request.Message = message;
request.TargetArn = "ARN";
var response = client.Publish(request);
// return response;
}
Run Code Online (Sandbox Code Playgroud)
这是 SNS 推送到 SQS 的内容:
{
"Type":"Notification",
"MessageId":"3333333",
"TopicArn":"ARN",
"Message": {
"Id":45,
"MessageId":"a871f8d7-7091-4548-87c5-da3bb4131044",
"Payload": {
"Internalid":"a7c50558-fc9c-47a6-b0ed-cb0cf5020f55",
"MessageId":"a871f8d7-7091-4548-87c5-da3bb4131044",
"TravelersName":"aaa aaaa",
"TravelersEmail":"aaa@aa.com",
"OwnersEmail":null,
"AccommodationId":1,
"BookingCode":"a523cd07-5506-48ad-9380-2e94002722e0"
},
"EventName":"BookingRecordCreated",
"CreatedOnUtc":"2016-09-26T15:14:55.437",
"HandledOnUtc":null
},
"Timestamp":"2016-09-26T15:14:50.923Z",
"SignatureVersion":"1",
"Signature":"dfgdfg///==",
"SigningCertURL":"https://sns",
"UnsubscribeURL":"https://sns."
}
Run Code Online (Sandbox Code Playgroud)
这就是我发布到 SNS 的内容
"Message":{
"Id":45,
"MessageId":"a871f8d7-7091-4548-87c5-da3bb4131044",
"Payload": {
"Internalid":"a7c50558-fc9c-47a6-b0ed-cb0cf5020f55",
"MessageId":"a871f8d7-7091-4548-87c5-da3bb4131044",
"TravelersName":"aa aaa",
"TravelersEmail":"aa@aaa.com",
"OwnersEmail":null,
"AccommodationId":1,
"BookingCode":"a523cd07-5506-48ad-9380-2e94002722e0",
"EventName":"BookingRecordCreated",
"CreatedOnUtc":"2016-09-26T15:14:55.437",
"HandledOnUtc":null
}
}
Run Code Online (Sandbox Code Playgroud)
您想要在 SNS 中启用 RAW 消息传送:
http://docs.aws.amazon.com/sns/latest/dg/large-payload-raw-message.html
除了发送大型负载之外,通过 Amazon SNS,您现在还可以为传送到 Amazon SQS 终端节点或 HTTP/S 终端节点的消息启用原始消息传送。这消除了终端节点处理 JSON 格式的需要,该格式是在未选择原始消息传输时为 Amazon SNS 元数据创建的。例如, 当为 Amazon SQS 终端节点启用原始消息传送时,不包含 Amazon SNS 元数据,并且已发布的消息将按原样传送到订阅的 Amazon SQS 终端节点。
| 归档时间: |
|
| 查看次数: |
6266 次 |
| 最近记录: |