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

如何将常量字符串与JSONPath拼接?AWS Step Functions报错求助

解决AWS Step Functions中SNS消息拼接JSONPath的问题

你遇到的错误是因为Message.$字段要求值是合法的JSONPath表达式或者Step Functions支持的内置函数调用,而你直接把常量字符串和JSONPath混合写的方式不符合语法规范。

正确的实现方式:使用States.Format内置函数

Step Functions提供了States.Format函数,可以轻松实现常量字符串与JSONPath变量的拼接,语法类似常规的字符串格式化逻辑。

修改后的ASL定义如下:

"Notify Failure": {
  "Type": "Task",
  "Resource": "arn:aws:states:::sns:publish",
  "Parameters": {
    "Message.$": "States.Format('A job submitted through Step Functions failed for document id {}', $.document_id)",
    "Subject": "Job failed",
    "TopicArn": "arn:aws:sns:us-west-2:xxxxxxx:xxxxxxxx"
  },
  "End": true
}

关键点说明:

  • States.Format的第一个参数是格式化模板字符串,用{}作为变量占位符
  • 第二个参数$.document_id是从输入JSON中提取document_id属性的合法JSONPath
  • 整个表达式需要用单引号包裹字符串部分,确保ASL语法解析正确

这样修改后,状态机定义就能正常保存,执行时会自动把输入中的document_id值替换到占位符位置,生成你需要的通知消息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:01:45