本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Step Functions 中处理输入和输出
使用变量管理状态和 JSONata
Step Functions 最近添加了变量JSONata,用于管理状态和转换数据。
要了解更多信息,请阅读博客文章 “使用变量简化开发者体验JSONata” 和 Amazon Step Functions
当 Step Functions 执行收到JSON输入时,它会将该数据作为输入传递到工作流程中的第一个状态。
使用JSONata,您可以从中检索状态输入$states.input
。您的状态机执行还会在中提供初始输入数据Context 对象。您可以在工作流程中的任何时候从中检索原始状态机输入$states.context.Execution.Input
。
当状态退出时,它们的输出可用于状态机中的下一个状态。除非您修改状态输出,否则默认情况下,您的状态输入将作为状态输出通过。对于后续步骤中可能需要的数据,可以考虑将其存储在变量中。有关更多信息,请参阅使用变量在状态之间传递数据。
QueryLanguage 推荐
对于新的状态机,我们建议使用JSONata查询语言。在未指定查询语言的状态机中,为了JSONPath向后兼容,状态机默认为。您必须选择使用JSONata您的状态机或单个状态。
使用处理输入和输出 JSONata
使用JSONata表达式,您可以选择和转换数据。在该Arguments
字段中,您可以自定义发送给操作的数据。结果可以在Output
现场转换为自定义状态输出。您也可以将数据存储在Assign
字段的变量中。有关更多信息,请参阅使用转换数据JSONata。
下图显示了JSON信息如何在JSONata任务状态下移动。

使用处理输入和输出 JSONPath
管理状态和转换数据
Step Functions 最近添加了变量JSONata,用于管理状态和转换数据。
了解如何使用变量传递数据和使用转换数据JSONata。
对于使用的状态机JSONPath,以下字段控制从一个状态到另一个状态的数据流:InputPath
Parameters
、ResultSelector
、ResultPath
、和OutputPath
。每个JSONPath字段都可以在工作流程中的每种状态中移动时进行操作JSON。
JSONPath字段可以使用路径JSON从输入或结果中选择部分内容。路径是一个以开头的字符串$
,用于标识JSON文本中的节点。Step Functions 路径使用JsonPath
下图显示了JSON信息如何在JSONPath任务状态下移动。InputPath
选择要传递给Task
状态任务的JSON输入部分(例如, Amazon Lambda 函数)。您可以在Parameters
现场调整发送给您的操作的数据。然后ResultSelector
,您可以使用选择要延续的部分操作结果。 ResultPath
然后选择要传递给输出的状态输入和任务结果的组合。 OutputPath
可以过滤JSON输出以进一步限制传递到输出的信息。
