在 Step Functions 中处理输入和输出 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 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,以下字段控制从一个状态到另一个状态的数据流:InputPathParametersResultSelectorResultPath、和OutputPath。每个JSONPath字段都可以在工作流程中的每种状态中移动时进行操作JSON。

JSONPath字段可以使用路径JSON从输入或结果中选择部分内容。路径是一个以开头的字符串$,用于标识JSON文本中的节点。Step Functions 路径使用JsonPath语法。

下图显示了JSON信息如何在JSONPath任务状态下移动。InputPath选择要传递给Task状态任务的JSON输入部分(例如, Amazon Lambda 函数)。您可以在Parameters现场调整发送给您的操作的数据。然后ResultSelector,您可以使用选择要延续的部分操作结果。 ResultPath然后选择要传递给输出的状态输入和任务结果的组合。 OutputPath可以过滤JSON输出以进一步限制传递到输出的信息。

筛选器顺序: InputPath、参数 ResultSelector、 ResultPath、和 OutputPath。