如何在 Argo 工作流中 运行 一个容器镜像中的多个文件并将输出用作另一个容器中的输入?

How to run multiple files in one container image and use the output as input in another container in Argo workflow?

我正在尝试 运行 2 python 个文件在一个容器中,将输出保存为参数:

- name: training
    serviceAccountName: argo-service
    outputs:
      parameters:
        - name: output-param-1
          valueFrom:
            path: ./tmp/output.txt
        - name: output-param-2
          valueFrom:
            path: ./tmp/output2.txt
    container:
      image: (image name)
      command: [python]
      args: ["/data/argo/model_build.py","/data/argo/model_build_2.py"]

将该输出用作另一个容器中的输入:

- name: evaluate
    serviceAccountName: argo-service
    inputs:
        parameters:
          - name: value-1
          - name: value-2
    container:
      image: (image name)
      command: ["python", "/data/argo/evaluate.py"]
      args: 
          - '{{inputs.parameters.value-1}}'
          - '{{inputs.parameters.value-2}}'

并将链定义为:

 - name: dag-chain
    dag:
      tasks:
      - name: src
        template: clone-repo
      - name: prep
        template: data-prep
        dependencies: [src]
      - name: train
        template: training
        dependencies: [prep]
      - name: eval
        template: evaluate
        dependencies: [train]
        args:
          parameters:
            - name: value-1
              value: '{{dag-chain.tasks.train.outputs.parameters.output-param-1}}'
            - name: value-2
              value: '{{dag-chain.tasks.train.outputs.parameters.output-param-2}}'

但是通过这些步骤我得到了错误:

" 内部服务器错误:templates.dag-chain.tasks.eval templates.evaluate inputs.parameters.value-1 未提供:"

请帮我找出我犯的错误。

我已经尝试了上述步骤,但没有用。

我现在无法访问 Argo 进行测试,但有几件事可以尝试:

    DAG 任务中的
  • args 应为 arguments(请参阅 DAG 任务的字段参考 here)。
  • 尝试从参数中删除 dag-chain(参见示例 here)。
 - name: dag-chain
    dag:
      tasks:
      - name: src
        template: clone-repo
      - name: prep
        template: data-prep
        dependencies: [src]
      - name: train
        template: training
        dependencies: [prep]
      - name: eval
        template: evaluate
        dependencies: [train]
        arguments:
          parameters:
            - name: value-1
              value: '{{tasks.train.outputs.parameters.output-param-1}}'
            - name: value-2
              value: '{{tasks.train.outputs.parameters.output-param-2}}'

如果这不起作用,我会用 Argo 尝试更多步骤。