AWS SQS FIFO 队列:队列应该启用 ContentBasedDeduplication 还是明确提供 MessageDeduplicationId?

jav*_*900 6 queue fifo amazon-sqs amazon-web-services aws-cli

当我尝试向我的FIFO SQSusing添加一条消息时,我AWS CLI得到:

An error occurred (InvalidParameterValue) when calling the SendMessage operation: The queue should either have ContentBasedDeduplication enabled or MessageDeduplicationId provided explicitly
Run Code Online (Sandbox Code Playgroud)

我的请求:

C:\Windows\system32>aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/307125934878/myqueue.fifo --message-body "hello world" --region us-east-1 --message-group-id 3
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Mar*_*cin 12

您必须为您的队列提供--message-deduplication-id或启用ContentBasedDeduplication

您可以明确提供 MessageDeduplicationId 。如果您无法提供 MessageDeduplicationId 并且为您的队列启用 ContentBasedDeduplication,Amazon SQS 将使用 SHA-256 哈希值来使用消息正文(但不是消息的属性)生成 MessageDeduplicationId。

重复数据删除ID是:

用于对已发送消息进行重复数据删除的令牌。如果成功发送具有特定消息重复数据删除 ID 的消息,则成功接受使用相同消息重复数据删除 ID 发送的任何消息,但不会在5 分钟重复数据删除间隔内传送。

对于现有队列,您可以在其选项中启用Configuration

在此处输入图片说明