2

在 Argo 中,我有时想使用withSequence:Workflow Step 的字段将 S3 文件夹中包含的每个项目传递给模板。我最好的想法是使用 Python 执行一个步骤,该步骤使用我在 CSV 中使用的类似过程列出整个文件夹,并将其转换为 JSON 对象列表。有没有内置的方法可以做到这一点?

4

3 回答 3

2

全局工作流输入参数是用户输入。当前没有特定于存储的自动化工具来填充全局输入参数。

您有几个选择:1) 在工作流程中生成键列表并将它们作为参数传递给单个步骤,或者 2) 使用外部程序生成列表并将它们作为全局参数传递给工作流程。

对于第一个选项,您可以创建一个步骤,使用 S3 客户端将密钥写入磁盘上的 JSON 数组。然后您可以使用 Argo 将该文件拉入步骤输出参数。最后,可以使用后续步骤withItems来循环键。

对于第二个选项,您可以使用本地计算机上的某些东西(BASH 脚本、Python 脚本等)来生成 S3 密钥的 JSON 数组并将它们(通过您用于提交工作流的任何机制)作为全局参数传递给工作流程。然后,您将使用withItems与前面的方法一样的循环参数。

于 2020-12-28T13:55:38.027 回答
1

从Argo Workflows 3.1开始,似乎可以迭代存储桶的内容(有关更多详细信息,请参阅数据源和转换)。

于 2021-09-10T06:30:18.740 回答
-4

您可以使用os.listdir(). 例如,假设 Windows:os.listdir("C:/Users/Seanny123/folder")可能返回[file1.vbs, file2.mkv, file3.jpg].

于 2020-12-28T02:16:05.097 回答