使用 aws:loop 已经很清楚了,特别是因为它涉及使用上一步的输出作为此步骤的输入。
我有一个步骤(使用这个:AWS-RunPowerSHellScript)输出一个数组(我也尝试过表)。该数组的一个示例是文件名列表:
a.file, b.file, c.file
JSON 为:
"outputs": [
{
"Type": "StringList",
"Name": "Name",
"Selector": "$.Payload"
}
我需要在 aws:loop 步骤中迭代该列表,但无论我如何调整输出 - 我总是收到“无法解析 Name.Output 为 StringList 类型。”
JSON 为:
"name": "Loop",
"action": "aws:loop",
"nextStep": "NextStep",
"isEnd": false,
"inputs": {
"Iterators": "{{ Name.Output }}",
"IteratorDataType": "StringList",
"Steps": [ ...
有谁知道如何使用 aws:loop 迭代 Name.Output ?或者,我需要如何调整输出步骤中的数据类型/数据?
所以,这比我想象的要容易。虽然 aws:loop 在验证 StringList 时总是出错,但它无法(或者我无法弄清楚)仅迭代数组:
some_arr=[ 1, 2, 3, 3]
但是,aws:loop 可以检测类型并将迭代 StringMap:
some_dict={"some_key": some_arr}
步骤输出和 aws:loop 输入的 JSON 看起来像这样:
"outputs": [
{
"Type": "StringList",
"Name": "outputName",
"Selector": "$.some_key"
}
]
"inputs": {
"IteratorDataType": "StringMap",
"Iterators": "{{ stepName.outputName }}"
}
现在,上述解决方案对于日常编码的人来说可能很自然,但是如果有更多文档或文档提供使用此步骤函数时所需数据结构的示例,那就太好了。