Tag: amazon sqs

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

我有一个创建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 […]

如何在AWS SQS队列上添加权限?

使用以下代码,我可以使用我的AWS账号添加权限,但队列不会收到来自SNS的任何消息。 AddPermissionRequest addPermissionRequest = new AddPermissionRequest(); addPermissionRequest.ActionName.Add(“SendMessage”); addPermissionRequest.ActionName.Add(“ReceiveMessage”); addPermissionRequest.QueueUrl = queueUrl; addPermissionRequest.Label = General.IpAddressAWSFriendly; addPermissionRequest.AWSAccountId.Add(AWS_ACCOUNT_ID); sqs.AddPermission(addPermissionRequest); 但是,当我尝试通过通配符(*)为每个人设置权限时: addPermissionRequest.AWSAccountId.Add(“*”); 它给了我一个错误。 如果我在AWS SQS控制台中手动添加权限并指定 SendMessage ReceiveMessage 对于允许的操作和原则,我将其设置为“所有人”,队列确实从我的SNS主题接收消息。 所以,显然,我做错了什么,但我再也看不到了。 任何帮助都会很棒! 我希望亚马逊有示例,SDK附带的示例并未显示有关设置策略或权限的任何信息。 在线文档中也没有显示任何内容。 令人沮丧。

使用Amazon SQS的最佳做法 – 轮询队列

我正在设计一种服务,用于发送电子邮件给我们的电子商务网站(订单确认,提醒等等)。计划是使用“SendEmail”方法,生成一大块代表要发送的电子邮件的XML,并坚持使用它在Amazon SQS队列中。 我的网络应用程序和其他应用程序将使用它来“发送”电子邮件。 然后,我需要一种检查队列的方法,并实际发送电子邮件消息。 (我知道我将如何发送电子邮件) 我很好奇什么是“轮询”队列的最佳方式是什么? 我应该创建一个Windows服务,并使用像Quartz.net这样的程序来安排它每隔x分钟检查一次队列吗? 有更好的方法吗?