【问题标题】:How to set up attribute Message Group ID如何设置属性消息组 ID
【发布时间】:2019-06-07 21:56:45
【问题描述】:

我正在尝试将 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。'

【问题讨论】:

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


    【解决方案1】:

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

    SendMessageRequest.MessageGroupId = 'foo'
    

    见:SendMessageRequest Class | AWS SDK for .NET V3

    【讨论】:

    • 您好约翰,非常感谢您的帮助。事实证明问题是我安装了旧版本的 SDK,这使我无法成功使用 sendMessageRequest.MessageGroupId。我试过了,但我得到了构建错误。所以,我最终尝试了我最初提出的代码。无论如何,在查看链接和您的示例时,我意识到必须关闭该版本。当我重新安装正确的版本时,我能够发送消息。再次,非常感谢!很高兴看到这个程序正常工作。
    猜你喜欢
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    相关资源
    最近更新 更多