如何将一个节点的输出作为输入参数传递给 Argo 工作流 DAG 中的另一个节点

How do I pass output of one node as an input parameter to another node in Argo workflow DAG

我正在尝试使用 Argo 构建 ML 管道 DAG。我 运行 遇到一个问题,我需要将 DAG 中一个节点的值作为参数发送到其后续节点。假设 ARGO DAG 结构如下所示:

{
  "apiVersion": "argoproj.io/v1alpha1",
  "kind": "Workflow",
  "metadata": {
    "generateName": "workflow01-"
  },
  "spec": {
    "entrypoint": "workflow01",
    "arguments": {
      "parameters": [
        {
          "name": "log-level",
          "value": "INFO"
        }
      ]
    },
    "templates": [
      {
        "name": "workflow01",
        "dag": {
          "tasks": [
            {
              "name": "A",
              "template": "task-container",
              "arguments": {
                "parameters": [
                  {
                    "name": "model-type",
                    "value": "INTENT-TRAIN"
                  }
                ]
              }
            },
            {
              "name": "B",
              "template": "task-container",
              "dependencies": ["A"],
              "arguments": {
                "parameters": [
                  {
                    "name": "model-type",
                    "value": "INTENT-EVALUATE"
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "name": "task-container",
        "inputs": {
          "parameters": [
            {
              "name": "model-type",
              "value": "NIL"
            }
          ]
        },
        "container": {
          "env": [
            {
              "name": "LOG_LEVEL",
              "value": "{{workflow.parameters.log-level}}"
            },
            {
              "name": "MODEL_TYPE",
              "value": "{{inputs.parameters.model-type}}"
            }
          ]
        }
      }
    ]
  }
}

A -> B

B 中发生的计算取决于 A 中计算的值。

我如何才能将 A 中计算的值传递给 B?

您可以为此使用 Argo 的“工件”- 请参阅 https://github.com/argoproj/argo-workflows/tree/master/examples#artifacts

中的示例

另一种方法是设置共享卷:https://github.com/argoproj/argo-workflows/tree/master/examples#volumes