You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS SDK SQS调用sendMessage报MessageDeduplicationID参数错误求助

解决SQS sendMessage中"Unexpected key 'MessageDeduplicationID'"错误

看起来你遇到的问题大概率是两个常见原因之一,咱们一步步排查:

1. 确认队列是否为FIFO类型

MessageDeduplicationId(注意大小写)这个参数仅适用于FIFO队列,标准队列不支持该参数。你可以通过队列URL快速判断:FIFO队列的URL结尾一定是.fifo,比如:

https://sqs.us-east-1.amazonaws.com/123456789012/my-queue.fifo

如果你的队列URL没有.fifo后缀,那就是标准队列,去掉MessageDeduplicationID参数即可解决错误。

2. 修正参数名的大小写错误

这是最容易踩坑的点!AWS SDK v2中该参数的正确名称是MessageDeduplicationId(最后一个字母是小写的d,不是大写D)。你代码里写的是MessageDeduplicationID(大写D结尾),SDK无法识别这个非标准参数名,所以抛出了"Unexpected key"错误。

修正后的代码应该是这样:

const result = await sqs.sendMessage({
  MessageBody: JSON.stringify(item),
  QueueUrl: QUEUE_URL,
  MessageGroupId: groupId,
  MessageDeduplicationId: deduplicationId, // 这里改成小写d结尾
}).promise();

额外验证点

你的AWS SDK版本2.692.0是2020年发布的,完全支持FIFO队列的相关参数,所以版本本身没问题。另外,指定apiVersion为2012-11-05也没问题——这个版本的API已经包含FIFO队列的所有功能,不需要修改apiVersion。

如果以上两步都做了还是有问题,可以确认下QUEUE_URL确实指向的是FIFO队列,并且你的IAM权限允许操作该队列。

内容的提问来源于stack exchange,提问作者Mon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:17:30