在AWS States语言中结合使用InputPath和Parameters

时间:2019-03-25 15:35:11

标签: amazon-web-services aws-step-functions

AWS States Language specification描述了InputPathParameters字段的作用,但没有给出一起使用过滤器的示例。

我的理解是,如果指定了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]
  }
}

我的解释正确吗?

1 个答案:

答案 0 :(得分:0)

这是完全正确的。 Parameters是创建的Payload Template,用于重塑输入数据以满足任务的格式要求,而ResultSelector的作用相同,但输出< / strong>数据。

“ Parameters”的值必须是一个有效负载模板,该模板是一个JSON对象,其输入是将InputPath应用于原始输入的结果。如果提供了“参数”字段,则其有效负载在提取和嵌入后将成为有效输入。

有时规范可能有点难以阅读,那么直观的图表可能会有所帮助

enter image description here