AWS States Language specification描述了InputPath
和Parameters
字段的作用,但没有给出一起使用过滤器的示例。
我的理解是,如果指定了InputPath
字段给出的JSON路径,则会将其应用于产生有效输入的原始输入。 然后(如果已指定),将应用参数字段的值,从而修改有效输入。
根据以下Task
状态定义,扩展the example given in the spec:
"X": {
"Type": "Task",
"Resource": "arn:aws:swf:us-east-1:123456789012:task:X",
"Next": "Y",
"InputPath": "$.sub",
"Parameters": {
"flagged": true,
"parts": {
"first.$": "$.vals[0]",
"last3.$": "$.vals[3:]"
}
}
}
然后,输入以下内容:
{
"flagged": 7,
"sub" : {
"vals": [0, 10, 20, 30, 40, 50]
}
}
在Resource
字段中标识的代码的有效输入为:
{
"flagged": true,
"parts": {
"first": 0,
"last3": [30, 40, 50]
}
}
我的解释正确吗?
答案 0 :(得分:0)
这是完全正确的。 Parameters
是创建的Payload Template,用于重塑输入数据以满足任务的格式要求,而ResultSelector
的作用相同,但输出< / strong>数据。
“ Parameters”的值必须是一个有效负载模板,该模板是一个JSON对象,其输入是将InputPath应用于原始输入的结果。如果提供了“参数”字段,则其有效负载在提取和嵌入后将成为有效输入。
有时规范可能有点难以阅读,那么直观的图表可能会有所帮助