使用 Data Flow 部署 Spring Cloud Task 应用程序
在本节中,我们将演示如何使用 Data Flow 注册 Spring Cloud Task 应用程序,创建任务定义,并在 Cloud Foundry、Kubernetes 和本地机器上启动任务定义。
先决条件
在开始学习本示例之前,您需要:
- 安装 Spring Cloud Data Flow。
- 安装本项目中使用的 Spring Cloud Task 项目。
安装 Spring Cloud Data Flow
您必须已将 Spring Cloud Data Flow 安装到以下平台之一:
安装 Spring Cloud Task 项目
在本指南中,我们将使用名为 billsetuptask
的 Spring Cloud Task 示例。如果您尚未完成此操作,请按照说明编写代码并构建任务。
创建任务定义
我们将注册一个任务应用程序,创建一个简单的任务定义,并使用 Data Flow 服务器启动该任务。Data Flow 服务器提供了一个全面的 API 来执行必要的步骤。Data Flow 服务器包含一个 Data Flow Dashboard Web UI 客户端。此外,还有一个 Data Flow Shell 命令行界面 (CLI),可单独下载。CLI 和 UI 都公开了完整的 API 功能。使用哪个取决于个人喜好,但 UI 更美观,因此我们在此处重点介绍它。
Data Flow Dashboard
假设已在一个受支持的平台上安装并运行了 Data Flow,请在浏览器中打开 <data-flow-url>/dashboard
。其中,<data-flow-url>
取决于平台。请参阅安装指南以确定安装的基本 URL。如果 Data Flow 正在本地机器上运行,请访问 http://localhost:9393/dashboard。
应用程序注册
Data Flow 仪表板将进入“应用程序注册”视图,我们将在其中注册示例任务。下图显示了在仪表板中添加应用程序
应用程序注册概念
Spring Cloud Data Flow 中的应用程序注册为命名资源,以便在使用 Data Flow DSL 配置和组合任务时可以引用它们。注册将逻辑应用程序名称和类型与由 URI 给出的物理资源相关联。URI 符合模式,并且可以表示 Maven 工件、Docker 镜像或实际的 http(s)
或 file
URL。Data Flow 定义了一些逻辑应用程序类型,这些类型指示应用程序作为流组件、任务或独立应用程序的角色。Spring Cloud Task 应用程序始终注册为 task
类型。您还需要指定应用程序是基于 Spring Boot 2.7.x 还是 Spring 3.x 的应用程序。在下面的示例中,我们将注册 Spring Boot 2.7.x 应用程序。
注册应用程序
Spring Cloud Data Flow 支持 Maven、HTTP、文件和 Docker 资源用于本地部署。在本例中,我们使用 Maven 资源。Maven 工件的 URI 通常采用 maven://<groupId>:<artifactId>:<version>
的形式。示例应用程序的 maven URI 如下所示
maven://io.spring:billsetuptask:0.0.1-SNAPSHOT
maven:
协议指定了一个 Maven 工件,该工件通过使用为 Data Flow 服务器配置的远程和本地 Maven 存储库来解析。要注册应用程序,请选择“**添加应用程序**”。出现“**添加应用程序**”页面后,选择“**注册一个或多个应用程序**”。填写表单并单击“**导入应用程序**”,如下所示
Spring Cloud Data Flow 支持 Maven、HTTP 和 Docker 资源用于本地部署。在本例中,我们使用 HTTP(实际上是 HTTPS)资源。HTTPS 资源的 URI 采用 https://<web-path>/<artifactName>-<version>.jar
的形式。然后,Spring Cloud Data Flow 会从 HTTPS URI 中提取工件。
示例应用程序的 HTTPS URI 如下所示
maven://io.spring:billsetuptask:0.0.1-SNAPSHOT
要注册应用程序,请选择添加应用程序。添加应用程序页面出现后,选择注册一个或多个应用程序。填写表单并单击导入应用程序,如下所示。
Spring Cloud Data Flow 支持将 Docker 资源用于 Kubernetes 部署。Docker 镜像的 URI 格式为 docker:<docker-image-path>/<imageName>:<version>
,并使用为 Data Flow 任务平台配置的 Docker 注册表和镜像拉取策略进行解析。
示例应用程序的 Docker URI 如下所示
docker:springcloudtask/billsetuptask:0.0.1-SNAPSHOT
要注册应用程序,请选择添加应用程序。添加应用程序页面出现后,选择注册一个或多个应用程序。填写表单并单击导入应用程序,如下所示
创建任务定义
要在仪表板 UI 中创建任务
- 从左侧导航栏中选择任务,然后选择创建任务。这样做会显示一个图形编辑器,我们可以使用它来组合任务。初始画布包含
START
和END
节点。在画布的左侧,我们可以看到可用的任务应用程序,包括我们刚刚注册的bill-setup-task
。 - 将该任务拖动到画布上。
- 将任务连接到
START
和END
节点以完成任务定义。在这种情况下,任务定义由单个任务应用程序组成。如果应用程序定义了配置属性,我们将在此处设置它们。下图显示了任务创建 UI: - 单击创建任务。这样做会提示您命名任务定义,该定义是我们想要部署的运行时配置的逻辑名称。在这种情况下,我们使用与任务应用程序相同的名称。
- 点击创建任务。这样做会显示主任务视图。
启动任务
下图显示了任务 UI,我们可以使用它来启动任务
要启动任务,请执行以下操作
- 单击要启动的任务所在行的选项控件,然后选择启动选项。这样做会将您带到一个表单,您可以在其中添加命令行参数和部署属性,但此任务不需要任何参数。
- 点击启动任务。这样做会在数据流服务器的任务平台上运行任务,并记录一个新的任务
执行
。执行完成后,状态将变为绿色,并显示完成。
- 选择任务执行选项卡以查看此任务的执行摘要,如下所示