我正在尝试使用步进函数遍历一小组文件。我调用lambda来获取文件列表,该列表用作我的处理循环的输入。
我的输入,进入迭代部分:
{
"name": "ConfigureIterator",
"input": {
"files": {
"count": 3,
"filelist": [
"foo",
"bar",
"fizz"
]
}
}
}
我的通行证状态定义:
"ConfigureIterator": {
"Type": "Pass",
"Result": {
"index": -1,
"step": 1,
"count": "$.files.count"
},
"ResultPath": "$.iterator",
"Next": "Iterator"
}
我想将count
的值从输入复制到传递步骤的结果中。但是,替换不会发生。输出:
{
"name": "ConfigureIterator",
"output": {
"files": {
"count": 11,
"filelist": [
...
]
},
"iterator": {
"index": -1,
"step": 1,
"count": "$.files.count"
}
}
}
通过状态是否不执行替换?我应该使用任务状态吗?如何定义“无为”任务状态?
答案 0 :(得分:1)
即使在2020年,“通过”状态下的“结果”字段也不会插值。但是,“参数”字段可以。通过状态的定义是将输入传递到输出。因此,如果可以以所需的形式获取 input ,则可以自动获取所需的 output 。换句话说,只需将“结果”替换为“参数”,就可以了。换句话说:
"ConfigureIterator": {
"Type": "Pass",
"Parameters": {
"index": -1,
"step": 1,
"count.$": "$.files.count"
},
"ResultPath": "$.iterator",
"Next": "Iterator"
}