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

在JSONata Step Function中配置SQS的MessageGroupId与MessageDeduplicationId异常

问题分析与修复方案

核心问题:参数路径错误

你的MessageGroupId和MessageDeduplicationId引用的$states.context.Execution.Input.requestId路径有误。对比MessageBody中requestId的取值$states.context.Execution.Input.request.requestId,说明requestId是嵌套在request对象下的,你少了一层request路径,导致无法正确获取值,进而这两个参数无法生效。

修复后的配置

修正这两个参数的JSONata表达式路径即可:

{
  "Comment": "A description of my state machine",
  "StartAt": "SQS SendMessage",
  "States": {
    "SQS SendMessage": {
      "Type": "Task",
      "Resource": "arn:aws:states:::sqs:sendMessage.waitForTaskToken",
      "Arguments": {
        "MessageBody": {
          "requestId": "{% $states.context.Execution.Input.request.requestId %}",
          "mslCallerId": "{% $states.context.Task.Token %}",
          "message": "message"
        },
        "QueueUrl": "{% $states.context.Execution.Input.fifoQueue %}",
        "MessageGroupId": "{% 'msgGroup_' & $states.context.Execution.Input.request.requestId %}",
        "MessageDeduplicationId": "{% 'msgId_' & $states.context.Execution.Input.request.requestId %}"
      },
      "End": true,
      "Output": "{% $states.result %}"
    }
  },
  "QueryLanguage": "JSONata"
}

额外验证点

  • 确认输入的fifoQueue是有效的FIFO队列URL(必须以.fifo结尾)
  • 检查执行输入结构是否为{ "request": { "requestId": "xxx" }, "fifoQueue": "xxx.fifo" },确保路径完全匹配
  • 可在Step Functions执行日志中查看Arguments的实际输出,确认两个参数是否被正确赋值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:35:57