我有一个示例 SCDF 数据流流应用程序,它能够部署并使其在 kubernetes 中运行。但我依靠数据流仪表板创建指向 docker 映像的应用程序,然后定义流并添加属性并部署它。现在我是试图自动化在数据流服务器控制台中创建应用程序的手动步骤,创建流定义并部署它。是否有任何示例项目或相同的参考。
2 回答
这里有几个选项。
1) 我们依靠 SCDF 的Java DSL在所有支持的平台上自动化和验收测试应用程序注册、流和任务的创建和部署。您将spring-cloud-dataflow-rest-client
在自定义 Java/Boot 应用程序中作为依赖项;这样,您就可以访问DataFlowOperations
,这将允许您通过 Shell 或 UI 执行所有可以执行的操作。看看TickTockTests.java以获得一个想法。事实上,我们在内部也使用这种模式进行集成测试(参见:DockerComposeIT.java)。
2) REST API:您可以使用流/任务的创建、部署/启动或流更新API 作为 CI 工具和工作流的一部分。您可以灵活地通过脚本或其他方式调用它们。这个概念是在网络研讨会上提出的——它可能会给你一些想法。
有几种方法可以自动化您的流创建和部署过程。Spring Cloud Data Flow Dashboard 只是 SCDF 服务器的 REST 客户端之一。Spring Cloud Data Flow 生态系统提供了很少的其他 REST 客户端实现。
外壳接口:https ://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#shell
使用它,您可以创建一个包含所有流创建和部署命令的脚本文件。您可以从一个环境到另一个环境执行此脚本(例如从开发到登台到生产)。这种方法唯一需要注意的是,shell 命令发送的操作大多asynchronous
是自然的,因此您需要添加显式检查或超时或睡眠,以确保您逐步运行 shell 命令。
Java DSL
SCDF REST 客户端也有一个 Java DSL,就像这里一样。您可以使用显式应用程序以编程方式创建流并部署它们。