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

如何用JSONPath在AWS Step Functions中向输入JSON追加键值对?

AWS Step Functions Parameters 追加字段问题解答

根据AWS Step Functions的文档,在Parameters转换中可以用JSONPath语法构建输入的键值对集合。针对你给出的场景:

输入JSON:

{  
  "comment": "Example for Parameters.",
  "product": {
    "details": {
       "color": "blue",
       "size": "small",
       "material": "cotton"
    },
    "availability": "in stock",
    "sku": "2317",
    "cost": "$23"
  }
}

想要转换为:

{  
  "foo": "My new value",
  "comment": "Example for Parameters.",
  "product": {
    "details": {
       "color": "blue",
       "size": "small",
       "material": "cotton"
    },
    "availability": "in stock",
    "sku": "2317",
    "cost": "$23"
  }
}

目前你用的实现是显式引用原有字段:

{  
  "foo": "My new value",
  "comment.$": "$.comment",
  "product.$": "$.product"
}

核心结论

目前AWS Step Functions内置的Parameters转换不支持“自动追加”原有字段的操作。Parameters的逻辑是完全构建一个新的JSON对象,只包含你在配置中定义的键值对——如果不明确指定保留原有字段,这些字段会被丢弃。

替代方案

如果不想逐个显式引用原有字段,可以考虑两种方式:

  • 使用Pass状态结合InputPath和Parameters:先通过InputPath保留全部输入,再在Parameters里新增字段,但这种方式会把原有输入嵌套在指定键下,和目标结构不一致,需要额外调整,示例写法:
    {
      "Parameters": {
        "foo": "My new value",
        "originalInput.$": "$"
      },
      "ResultPath": "$"
    }
    
  • 借助Lambda函数处理:把输入传给Lambda函数,在函数逻辑里直接追加foo字段后返回,这种方式更灵活,适合复杂的字段修改场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:52:10