AWS Step Function嵌套调用时如何过滤内层执行输出仅保留Input节点
你可以通过修改外层Step Function中Task状态的OutputPath参数实现过滤,具体操作如下:
方案原理
Step Function的Task状态执行完成后,会先通过ResultSelector(可选)加工返回结果,再通过OutputPath筛选指定路径的内容作为当前状态的最终输出。你当前配置的OutputPath为$,会返回内层执行的完整元数据,只需将其修改为你需要提取的字段路径即可。
具体配置修改
如果你需要提取完整Input节点内容,将OutputPath修改为$.Input即可,修改后的完整定义如下:
{ "StartAt": "MySF", "States": { "Textract": { "Type": "Task", "OutputPath": "$.Input", "Resource": "arn:aws:states:::states:startExecution.sync:2", "Parameters": { "Input": { "input.$": "$$.Execution.Input" }, "StateMachineArn": "inner_step_function_arn" }, "End": true } }, "TimeoutSeconds": 3600 }
如果你需要直接提取Input节点内嵌套的input字段(也就是示例中标注的需要的内容层级),可以将OutputPath设置为$.Input.input即可。
补充说明
如果后续有更复杂的字段提取、重命名需求,也可以搭配ResultSelector参数自定义返回结构,再用OutputPath筛选输出,满足更灵活的过滤需求。
内容的提问来源于stack exchange,提问作者CC.
相关产品推荐
相关产品推荐

