无法在C#中访问Amazon SQS消息属性

 faithKOBE 发布于 2023-01-15 20:06

我有一个创建SQS消息并将它们放在SQS队列上的进程,以及另一个读取这些消息并根据正文内容和消息属性执行某些逻辑的进程.

我可以使用正文和属性在SQS队列上成功创建消息,但是在阅读消息属性时我遇到了问题!

我确信我的消息创建过程是正确的,我可以在AWS SQS控制台中看到队列的属性.我只是想不通为什么我不能读回那些属性.

我创建消息的代码:

IAmazonSQS sqs = AWSClientFactory.CreateAmazonSQSClient();
var sendMessageRequest = new SendMessageRequest();
sendMessageRequest.QueueUrl = "myURL";
Dictionary MessageAttributes = new Dictionary();
MessageAttributeValue messageTypeAttribute = new MessageAttributeValue();
messageTypeAttribute.DataType = "String";
messageTypeAttribute.StringValue = "HIGH";
MessageAttributes.Add("MESSAGEPRIORITY", messageTypeAttribute);

sendMessageRequest.MessageAttributes = MessageAttributes;
sendMessageRequest.MessageBody = "Thats the message body";

sqs.SendMessage(sendMessageRequest);

创建了上述工作和具有属性MESSAGEPRIORITY = HIGH的消息(我可以在SQS控制台中看到消息和属性).

回读邮件时(我已经跳过了显示队列URL等的部分代码):

IAmazonSQS sqs = AWSClientFactory.CreateAmazonSQSClient();
ReceiveMessageResponse receiveMessage = new ReceiveMessageResponse();
ReceiveMessageRequest request = new ReceiveMessageRequest();
request.QueueUrl = "myURL";
receiveMessage = sqs.ReceiveMessage(request);
string messageBody = receiveMessage.Messages[0].Body;
Dictionary messageAttributes = receiveMessage.Messages[0].MessageAttributes;

使用上面的代码,我得到了消息的正文,但属性是空的!我直接使用SQS队列手动创建消息时遇到同样的问题.我想不通为什么?任何帮助都会很棒.非常感谢,

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有