如何设置属性消息组ID

hal*_*ber 7 c# amazon-sqs amazon-web-services

我正在尝试将 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);
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*ein 10

MessageGroupId在其本身上指定的SendMessageRequest。它不是一个MessageAttribute.

SendMessageRequest.MessageGroupId = 'foo'
Run Code Online (Sandbox Code Playgroud)

请参阅:SendMessageRequest 类 | 适用于 .NET V3 的 AWS 开发工具包