如何设置属性消息组ID

时间:2019-06-07 21:56:45

标签: c# amazon-web-services amazon-sqs

我正在尝试将SQS消息发送到FIFO队列。我遇到了“消息组ID”属性的问题。我认为使用MessageAttributeValue是设置“ MessageGroupId”的正确方法,但是AWS似乎无法识别此输入。设置SQS SendMessageRequest.MessageAttributes的正确方法是什么?

我已经创建了一个控制台项目来发送消息。我尝试了一些设置“消息组ID”属性的方法,但是在发送消息时出现了异常。

        SendMessageRequest sendMessageRequest = new SendMessageRequest();
        sendMessageRequest.QueueUrl = myURL;


        MessageAttributeValue mavGroupID = new MessageAttributeValue();
        mavGroupID.DataType = "MessageGroupId";
        mavGroupID.StringValue = "1";

        MessageAttributeValue mavDeDuplicateID = new    MessageAttributeValue();
        mavDeDuplicateID.DataType = "MessageDeduplicationId";
        mavDeDuplicateID.StringValue = "1";

        sendMessageRequest.MessageAttributes.Add("0", mavGroupID);
        sendMessageRequest.MessageAttributes.Add("1", mavDeDuplicateID);



        string sMyMessage = "";

        Console.WriteLine();
        Console.WriteLine("Message to send: ");
        sMyMessage = Console.ReadLine();


        sendMessageRequest.MessageBody = sMyMessage;

        SendMessageResponse sMR = amazonSQSClient.SendMessage(sendMessageRequest);

Amazon.SQS.AmazonSQSException:'请求必须包含参数MessageGroupId。'

1 个答案:

答案 0 :(得分:2)

MessageGroupId本身是由SendMessageRequest指定的。它不是MessageAttribute的。

SendMessageRequest.MessageGroupId = 'foo'

请参阅:SendMessageRequest Class | AWS SDK for .NET V3