首页 > 解决方案 > AWS SQS FIFO Queue: How to set MessageGroupId on Send Message component of Mule 4

问题描述

UseCase: Sending message to AWS SQS FIFO queue name muleTesting.fifo using Mule Amazon SQS Connector 5.6

Implementing: https://docs.mulesoft.com/amazon-sqs-connector/5.6/amazon-sqs-connector-examples

Question: How do I add the MessageGrouperID parameter on SendMessageRequest using Mule SQS Connector, the following is giving error on SendMessage Mule Component:

{
    body: "Hello World",
    messageAttributes: {
        "AccountId": {
            "stringValue" : "000123456",
            "dataType" : "String.AccountId"
        } as Object {
            class: "org.mule.extension.sqs.api.model.MessageAttributeValue"
        },
        "NumberId": {
            "stringValue" : "230.000000000000000001",
            "dataType" : "Number"
        } as Object {
            class : "org.mule.extension.sqs.api.model.MessageAttributeValue"
        }
    } as Object {
        class: "java.util.HashMap"
    }
} as Object {
    class: "org.mule.extension.sqs.api.model.Message"
}

Error:

"The request must contain the parameter MessageGroupId. (Service: AmazonSQS; Status Code: 400; Error Code: MissingParameter; Request ID: 43ce279b-5972-5df0-bff5-706ac30f8b29; Proxy: null)"

标签: amazon-web-servicesmuleamazon-sqsfifo

解决方案


您应该能够像这样将 groupId 属性添加到您的有效负载中。

{
    body: "Hello World",
    groupId: "GroupName",
    messageAttributes: {
        "AccountId": {
            "stringValue" : "000123456",
            "dataType" : "String.AccountId"
        } as Object {
            class: "org.mule.extension.sqs.api.model.MessageAttributeValue"
        },
        "NumberId": {
            "stringValue" : "230.000000000000000001",
            "dataType" : "Number"
        } as Object {
            class : "org.mule.extension.sqs.api.model.MessageAttributeValue"
        }
    } as Object {
        class: "java.util.HashMap"
    }
} as Object {
    class: "org.mule.extension.sqs.api.model.Message"
}

推荐阅读