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

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

ItemSelector (地图)

管理状态和转换数据

Step Functions 最近添加了变量JSONata,用于管理状态和转换数据。

了解如何使用变量传递数据使用转换数据JSONata

默认情况下,Map 状态的有效输入是原始状态输入中的一组单个数据项。使用 ItemSelector 字段,可在数据项的值传递到 Map 状态之前对其进行覆盖。要覆盖这些值,请指定包含一组键值对的有效JSON输入。这些对可以是状态机定义中提供的静态值、使用路径从状态输入中选择的值或从 Conte xt 对象访问的值。

如果您使用路径或 Context 对象指定键值对,则键名必须以结尾。.$

注意

ItemSelector 字段取代了 Map 状态内的 Parameters 字段。如果您在 Map 状态定义中使用 Parameters 字段来创建自定义输入,我们强烈建议您将其替换为 ItemSelector

您可以在内联 Map 状态分布式 Map 状态中指定 ItemSelector 字段。

例如,考虑以下JSON输入,该输入包含imageData节点内三个项目的数组。对于每次 Map 状态迭代,都会将一个数组项作为输入传递给迭代。

[ { "resize": "true", "format": "jpg" }, { "resize": "false", "format": "png" }, { "resize": "true", "format": "jpg" } ]

使用该ItemSelector字段,您可以定义自定义JSON输入以覆盖原始输入,如以下示例所示。然后,Step Functions 将此自定义输入传递给每次 Map 状态迭代。自定义输入包含Map状态的静态值size和上下文对象数据的值。C $$.Map.Item.Value ontext 对象包含每个单独数据项的值。

{ "ItemSelector": { "size": 10, "value.$": "$$.Map.Item.Value" } }

以下示例显示了内联 Map 状态 的一次迭代所接收的输入:

{ "size": 10, "value": { "resize": "true", "format": "jpg" } }
提示

有关使用 ItemSelector 字段的分布式 Map 状态 的完整示例,请参阅使用分布式 Map 复制大规模 CSV