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

Step Functions工作流使用InputPath选取输入时报属性不存在错误

问题根本原因

报错的核心原因是对Step Functions的输入处理顺序理解有误,错误配置了InputPath字段:

  1. Step Functions状态的输入处理有固定执行顺序:先执行InputPath从当前状态的原始输入中筛选子集,再基于筛选后的结果解析Parameters字段,前序步骤执行失败会直接中断,不会走到后续逻辑。
  2. 进入Step4(Parallel并行状态)时,状态的原始输入是上游Step3系列步骤传递的输出,这个输入的根节点下不存在identity属性。你在Verify identity任务中配置了InputPath: "$.identity",会在解析硬编码的Parameters之前,先尝试从原始输入中提取identity字段,找不到就直接抛出路径不存在的错误。
  3. 同个并行分支下的Verify address任务没有配置额外的InputPath,使用默认值$(即选取全部原始输入),因此可以正常解析你在Parameters中写死的静态参数,不会触发同类报错。

触发的报错信息:
An error occurred while executing the state 'Verify identity' (entered at the event id #19). Invalid path '$.identity' : Property ['identity'] not found in path $

修复方案

根据你的实际业务需求二选一即可:

  • 如果你就是要传递硬编码的固定身份校验参数,不需要从上游输入动态取值:直接删除Verify identity任务下的InputPath: "$.identity"配置即可,让InputPath使用默认值$,后续会正常解析你写在Parameters里的静态参数。
  • 如果后续需要结合上游动态传入的identity字段和静态配置参数:同样删除错误的InputPath配置,在Parameters中通过.suffix后缀的字段名引用路径取值即可,比如要引用上游输入中的identity手机号字段,可以和硬编码字段并列配置"mobile.$": "$.identity.mobile"。

修复后Verify identity任务的核心配置参考如下:

"Verify identity": {
  "Type": "Task",
  "Resource": "arn:aws:states:::lambda:invoke",
  "Parameters": {
    "Payload": {
      "identity": {
        "email": "jdoe@example.com",
        "ssn": "123-45-6789"
      },
      "firstName": "Jane",
      "lastName": "Doe"
    },
    "FunctionName": "{Lambda ARN}"
  },
  "End": true
}

配置时可以记住Step Functions固定的输入输出处理顺序,避免同类错误:InputPath → Parameters → 任务实际执行 → ResultSelector → ResultPath → OutputPath,所有路径类配置都要基于当前步骤拿到的输入结构编写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:09:18