我在AWS Step Function的Map状态中解析“字符串化JSON”时遇到了一个问题。我的状态机首先调用一个返回JSON对象的Lambda函数。输出如下所示:
{
"requests": "{\"Data\":[{\"ID\":\"10001\",\"GroupID\":\"9999\"},{\"ID\":\"10002\",\"GroupID\":\"9999\"}]}"
}
字符串
当我通过一个端点调用这个lambda时,它返回一个普通的JSON。然而,当它出现在Step Function的编辑模式下的输出窗口中时,它是一个字符串。然后,我的下一步将是遍历数组。我必须通过关键字“Data”进行过滤,然后就有了数组。但是为了将其作为下一部分的输入传递,(这是一个Map状态),我必须能够给予一个数组。
如果您对在AWS Step Functions范围内处理这种情况有任何建议或见解,我们将不胜感激。
1条答案
按热度按时间dhxwm5r41#
您可以使用intrinsic函数将请求输出转换为JSON,使用
States.StringToJson
函数,并使用OutputPath过滤器将Data
字段传递给map状态。https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html#asl-intrsc-func-json-manipulate
类似于以下步骤(参见
String To Json
步骤)。String To Json
步骤的输入是{"input": "{\"Data\":[1,2,3,4]}"}
,输出是[1,2,3,4]
。字符串
在下面的示例输入中,这使用Map将1、2、3、4传递到“通过”状态。
型