如何从 API 请求触发 argo 工作流?
How to trigger argo workflow from an API request?
从 API 请求触发 argo 工作流的最佳方式是什么?
API请求由web服务器处理,服务器如何将工作流提交给argo服务器?使用 CLI?使用休息请求?这里的 best/recommended 方法是什么?
没有“正确的方法”。但这里有一些选项,因此您可以选择最适合您的应用程序的选项:
使用 Argo API
with an SDK (Java, Go, Python)
如果您的 API 是用 Java、Go 或 Python 编写的,并且如果您与 Argo 的交互比简单地提交工作流更复杂(例如,如果您'还列出了工作流并希望很好地表示这些对象),Argo Workflows SDK 可能是一个不错的选择。根据我的经验,SDK 存在一些问题和错误,所以只有在您需要功能更全的客户端时,我才会深入研究。
directly 使用一些 HTTP 客户端
如果您的用例非常简单(比如提交带有 WorkflowTemplate 参考的小型工作流),我建议使用直接 HTTP 调用 Argo 或 Kubernetes API.如果您的语言有强大的 Kubernetes SDK,那也是一个不错的选择。
-
webhook 端点在技术上是 API 的一部分,但有点不同。 API 基本上是 Kubernetes API 的专门版本,专为 Argo CRD 量身定制。 events
API 端点提供了一些特定于启动工作流程的附加功能。
使用the CLI
您必须从服务器代码中派生 CLI 进程,因此这可能不是“最干净”的方法。
使用 Argo 事件
Argo Events 是一个独立但密切相关的项目。它可以接受各种输入(webhooks、pub/sub 消息等)然后 trigger a Workflow.
Argo Events 可能有意义,例如,如果您想要所有提交的工作流的外部记录。 Pub/sub 会给你那个记录。
使用 Kubernetes API 或 CLI
工作流只是 Kubernetes 资源,因此您可以根据需要通过 Kubernetes 机制提交它们。
我相信你能看出来,这真的取决于应用程序。如果其中任何一个需要澄清,请告诉我。
从 API 请求触发 argo 工作流的最佳方式是什么?
API请求由web服务器处理,服务器如何将工作流提交给argo服务器?使用 CLI?使用休息请求?这里的 best/recommended 方法是什么?
没有“正确的方法”。但这里有一些选项,因此您可以选择最适合您的应用程序的选项:
使用 Argo API
with an SDK (Java, Go, Python)
如果您的 API 是用 Java、Go 或 Python 编写的,并且如果您与 Argo 的交互比简单地提交工作流更复杂(例如,如果您'还列出了工作流并希望很好地表示这些对象),Argo Workflows SDK 可能是一个不错的选择。根据我的经验,SDK 存在一些问题和错误,所以只有在您需要功能更全的客户端时,我才会深入研究。
directly 使用一些 HTTP 客户端
如果您的用例非常简单(比如提交带有 WorkflowTemplate 参考的小型工作流),我建议使用直接 HTTP 调用 Argo 或 Kubernetes API.如果您的语言有强大的 Kubernetes SDK,那也是一个不错的选择。
-
webhook 端点在技术上是 API 的一部分,但有点不同。 API 基本上是 Kubernetes API 的专门版本,专为 Argo CRD 量身定制。
events
API 端点提供了一些特定于启动工作流程的附加功能。 使用the CLI
您必须从服务器代码中派生 CLI 进程,因此这可能不是“最干净”的方法。
使用 Argo 事件
Argo Events 是一个独立但密切相关的项目。它可以接受各种输入(webhooks、pub/sub 消息等)然后 trigger a Workflow.
Argo Events 可能有意义,例如,如果您想要所有提交的工作流的外部记录。 Pub/sub 会给你那个记录。
使用 Kubernetes API 或 CLI
工作流只是 Kubernetes 资源,因此您可以根据需要通过 Kubernetes 机制提交它们。
我相信你能看出来,这真的取决于应用程序。如果其中任何一个需要澄清,请告诉我。