MessageAttributeValue 和 MessageSystemAttributeValue 有什么区别

What's the difference between MessageAttributeValue and MessageSystemAttributeValue

我想将自定义属性值与 SQS 队列中的消息一起发送。我遇到过 MessageAttributeValue 和 MessageSystemAttributeValue。两者在 AWS 文档中的定义几乎相同。

它们有什么区别?

MessageAttributeValue documentation MessageSystemAttributeValue documentation

MessageAttributes 是消息的正常属性。 MessageSystemAttribute是特殊属性,只有一个:

Currently, the only supported message system attribute is AWSTraceHeader. Its type must be String and its value must be a correctly formatted AWS X-Ray trace header string.

当您在文档中查看数据类型的实际使用情况而不是仅仅查看原始数据类型本身时,您会得到什么,例如:https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html

difference正在使用中:

  • 消息属性:您可以使用消息属性将自定义元数据附加到应用程序的 Amazon SQS 消息。
  • 消息系统属性:您可以使用消息系统属性存储其他亚马逊服务的元数据(目前,唯一支持的消息系统属性是AWSTraceHeader。其值必须是格式正确的亚马逊X-Ray跟踪头字符串).