Kaoto


Red Hat build of Apache Camel 4.10

使用 Kaoto 创建基于 Apache Camel 的创建和编辑集成

摘要

本指南全面概述了 Kaoto,这是一个专为创建 Apache Camel 集成量身定制的可视化设计工具。它涵盖安装过程和 Kaoto 的使用,以加快开发生命周期。

第 1 章 Kaoto 概述

KaotoKamel Orchestration Tool 的缩写。它是一个低的代码,没有代码集成设计程序,基于 Apache Camel 创建和编辑集成。Kaoto 可扩展、灵活,适应不同的用例。

Kaoto 提供在图形设计中使用的构建块丰富的目录。默认情况下,Karoto 加载官方上游 Camel CatalogKamelet Catalog,同时提供红帽支持的目录。

Kaoto 代表一个直观的 Apache Camel 集成的可视化平台,专门旨在简化开发过程。它通过其低代码/无代码功能为初级集成工程师提供了一个可访问入口点,使集成开发的初始步骤变得简单。此外,K Kaoto 支持向更复杂的功能进行无缝过渡,使专家 Camel 开发人员能够有效地开发并微调复杂的集成路由。

本指南的受众是 Apache Camel 开发人员。本指南假定您对 Apache Camel 有一定的了解以及您的组织的处理要求。

使用 Kaoto 的好处可以如下所示:

  • 增强的可视化开发体验

    通过利用 Kaoto 的可视化设计功能,用户可以通过用户界面直观地创建、查看和编辑 Camel 集成。这种低代码/无代码方法可显著减少新用户的学习过程,并加快了季节性开发人员的开发流程。

  • 全组件目录可访问性

    Kaoto 可立即访问 Camel 组件、企业集成模式(EIP)和 Kamelets 的丰富目录。此广泛的目录使开发人员能够为其集成解决方案轻松查找和实施必要的组件。通过资源随时可用,开发人员可以专注于解决业务问题,而不是花费时间搜索和学习不同组件。

  • 简化了集成开发流程

    该平台在设计时具有高效的用户体验,从而优化创建综合集成所需的步骤。这种效率是通过自动完成、配置表单和互动反馈机制等功能实现的。因此,开发人员可以快速组装和配置集成,从而减少了整体开发时间。这种简化的流程通过方便设计和测试不同方法来促进试验和创新。

第 2 章 安装 Kaoto

2.1. 先决条件

2.1.1. Microsoft Visual Studio Code

Kaoto 作为 Microsoft Visual Studio Code 扩展提供。如果您还没有在您的 manchine 上安装 VS Code,请立即执行此操作。

访问 下载页面,并按照最适合您的安装说明进行操作。

2.1.2. Camel CLI

为了为您提供推荐安装 Camel CLI 的最佳用户体验,它为 Camel 开发人员提供了各种功能。

请按照以下步骤安装它。

  1. 按照以下说明 安装 JBang
  2. 从命令 shell 中执行以下命令,验证 JBang 是否正常工作。这应该会输出安装的 JBang 版本。

    jbang version
    Copy to Clipboard Toggle word wrap
  3. 在命令 shell 中运行以下命令安装 Camel CLI

    jbang app install camel@apache/camel
    Copy to Clipboard Toggle word wrap
  4. 从命令 shell 中执行以下命令,以检查 Camel CLI 是否正常工作。这应该输出安装的 Camel CLI 的版本。

    camel version
    Copy to Clipboard Toggle word wrap

2.1.3. Citrus Testing

如果要使用 Citrus 测试框架,我们强烈建议您安装 Citrus JBang 插件。

请按照以下步骤安装它。

  1. 按照以下说明 安装 JBang
  2. 从命令 shell 中执行以下命令,验证 JBang 是否正常工作。这应该会输出安装的 JBang 版本。

    jbang version
    Copy to Clipboard Toggle word wrap
  3. 在命令 shell 中运行以下命令,以安装 Citrus JBang 插件

    jbang app install citrus@citrusframework/citrus
    Copy to Clipboard Toggle word wrap
  4. 从命令 shell 中执行以下命令,以检查 Citrus JBang 插件 是否正常工作。这应该会输出已安装的 Citrus JBang 插件的版本

    citrus --version
    Copy to Clipboard Toggle word wrap

2.2. Kaoto Extension

  1. 打开 VS Code.
  2. 在左侧面板(或按 CTRL+SHIFT+X)打开 Extensions 视图。
  3. 在搜索字段中键入 Kaoto
  4. Install 按钮。

  5. 安装完成后,您将在左侧面板中看到一个新图标。

第 3 章 Kaoto 入门

本节描述了如何:

  • 在 VS Code 中设置工作区
  • 访问创建集成的重要命令
  • 创建第一个 Camel 路由
  • 在本地运行 Camel 路由
  • 获取 Camel Route 的源代码

3.1. 准备 Workspace

Visual Studio Code 要求您为项目创建一个工作区,以访问环境的完整功能。

  1. 如果您尚未这样做,请打开 Visual Studio Code 实例。您可以通过在计算机上找到右启动程序,或打开命令 shell 并执行代码来完成此操作。
  2. 这应该会使您有一个类似以下的窗口。(在下图中我们选择了 Kaoto 视图 - 请查看 Kaoto Camel 图标。)

  3. 接下来,我们需要选择将存储项目文件的工作区文件夹。
  4. 您可以单击 Open Folder 按钮,也可以转至 File 菜单并选择条目 Open Folder
  5. 在以下屏幕中,浏览到要使用的文件夹并选择它。

3.2. 创建第一个 Camel 路由

  1. 在左侧边栏上的 Kaoto 视图( Kaoto Camel 图标)打开,您将看到顶部的 Integration 部分。
  2. 将鼠标移到 Integrations 头右侧的时,您将看到一些小图标,其中一个是带有加号的文件。
  3. 点击它,选择 New Camel Route 并按照说明创建第一个 Camel Route。
  4. 完成后,将创建新文件,并且 Kaoto 编辑器应如下面的视频中所示。如果没有显示编辑器,请重新查看前面的步骤以确保您正确遵循所有指令。

  5. 此时,您已成功创建了第一个正常工作的 Camel Route,可立即进行测试。

    注意

    如果执行失败,您应该仔细检查您是否已正确安装了 Camel CLI。按照 Camel CLI 部分中概述的说明进行操作。

  6. 现在,您应该可以看到类似以下屏幕。

3.2.1. 启动 Camel 路由

测试您的集成非常简单且直接。

  1. Integrations 部分中,将鼠标悬停在集成的文件名上,这将显示一些有用的按钮。其中其中一个按钮是带有绿色 play 按钮的 Camel 图标。
  2. 单击它,以使用 Camel JBang 在本地启动您的集成。
  3. 请查看以下视频,其中将向您展示如何启动集成和可能的操作,以便与正在运行的集成进行交互。

  4. 正如您在视频中所看到的那样,您的集成在 Dev 模式中启动,并通过 Kaoto 编辑器更改集成,否则每当您保存时都会重新载入源代码。这可帮助您更快地进行原型构建。

3.2.2. 访问源代码

您可能想了解新 Camel Route 的来源如何。虽然 Kaoto 会尝试减轻用户使用源代码的负担,但我们仍允许通过默认的 Visual Studio Code 文本编辑器访问它。

有两种方法可以做到这一点。

  1. 第一个是使用 Kaoto 编辑器右上角的开源代码切换按钮。这是最方便的方法。
  2. 第二种方式是使用集成的文件名在选项卡中调用上下文菜单,然后将 Reopen Editor 与项目搭配使用。以下视频中显示了这两种方法。

第 4 章 Visual Designer

下图展示了 Kaoto Visual Editor 的不同部分。

  1. 选择了打开的文件的 Explorer 视图。
  2. 当前显示的 Integration。
  3. 您可以调整和自定义所选步骤设置的配置面板。
  4. 显示当前所选集成类型的下拉菜单,此处的 Camel Route.
  5. 显示当前所选 Camel Route 的下拉菜单。如果您在文件中定义了多个 Camel 路由,则很方便。您可以重命名、删除、选择并切换每个 Camel Route 的可见性。
  6. 下拉列表允许您在集成中添加更多 Routes 或其他全局元素。仅对 Camel 路由可见!
  7. 将集成的完整源代码复制到 Clipboard 中。
  8. 将当前可见的集成导出为 PNG 镜像。
  9. 为您的集成生成文档,并以 Markdown 格式下载它。
  10. 显示可用 Camel 版本的下拉菜单。有不同的运行时可用,如 Camel Main、Springboot 和 Quarkus。
  11. Error-Marker 集成的一个步骤,用于指示步骤配置的问题。
  12. 所选步骤的工具栏。它为当前选择提供了可用操作。
  13. 此按钮栏为您提供了 Zoom In / Out,Reset the View, Switching the View, switching the layout direction of the comprehensive Camel Catalog,并为您提供对全面的 Camel 目录的访问权限,包括所有可用的组件/连接器、企业集成模式和 Kamelets。

4.1. 使用 Camel 路由

Apache Camel 中,路由是一系列处理步骤,它们应用到从源传输到目的地时的消息。路由通常由以线性序列连接的一系列处理步骤组成。

Camel Route 是定义集成流的位置。例如,您可以编写 Camel Route 以指定如何集成两个系统。您还可以指定如何在系统间操作、路由或中处理数据。

4.1.1. 创建新的 Camel 路由

我们介绍了如何在章节 第 3.2 节 “创建第一个 Camel 路由” 中创建新的 Camel Route YAML 文件。

我们使用另一种方式创建新的 Camel 路由。

  1. 如果您的路由仍处于打开状态,请单击 Route 选择下拉菜单,然后使用 trashbin 图标删除所有路由。

  2. 确认删除所有路由后,您应该看到如下空白屏幕。

  3. 现在,您可以通过单击 canvas 中心中的 + New 按钮,或使用 Canvas 右上角的同一按钮来创建新的 Camel 路由,这会在 Route 选择下拉菜单旁边放置一个模板路由,该路由将使用 Timer 组件将每一消息发送到 Log 组件。

4.1.2. 添加一个步骤

现在,在 TimerLog 组件之间添加新步骤来修改消息正文。

在路由中添加步骤的方法有两种。

  1. 您可以在您要进行之前或之后插入的步骤上 Right-Click。这将调出一个上下文菜单,其中包含要从中选择的可用操作。
  2. 更简单的替代方法是将鼠标悬停在您要插入的两个步骤之间的连接上,然后单击显示的 + 按钮。
  3. 现在,将鼠标悬停在 TimerLog 步骤之间的连接上,然后点 + 按钮来执行 Add step 操作。

    重要

    使用右键上下文菜单时,可用操作集合取决于所选步骤,可能会有所不同。有附加、添加、替换和删除步骤以及一些更专业的操作的操作。

  4. 这将打开 Camel Catalog,您可以在其中搜索您要添加的步骤。

  5. 如前文所述,我们希望在将消息正文发送到 日志 组件之前修改消息正文。要达到此目的,我们需要添加名为 setBodyProcessor。让我们在目录顶部的过滤器文本字段中输入此名称。

  6. 现在,您可以选择 setBody 标题将其添加到路由中。现在,在 canvas 上选择新的添加步骤来打开右侧的配置表单。

  7. 我们来将 Expression 文本字段 从 Kaoto 更改为 Hello
  8. 现在,Log 组件将每秒收到 Hello from Kaoto! 消息,并将其记录到控制台。

    重要

    在使用步骤的右击上下文菜单时,通常会通过两个操作添加新步骤。prepend 可用于在所选步骤前添加步骤,Append 会在所选步骤后添加新步骤。

    但是,在流的第一步以及可以包含子项的步骤中,会使用 Add Step 操作。

4.1.3. 替换步骤

  1. 您可以通过将鼠标悬停在上或选择步骤来替换 canvas 上的任何步骤。这将生成一个工具栏,其中包含 replace 操作按钮。

  2. 或者,您也可以通过调用步骤上的上下文菜单并选择项目 替换 来完成。两种方法都会打开 Camel 目录,您可在此处选择替换内容。

4.1.4. 删除步骤

警告

当使用子项或包含子项的容器元素调用 Delete 操作时,会出现一个确认对话框,因为您要只删除单个步骤或容器,也包括所有子对象。请小心谨慎

  1. 您可以通过将鼠标悬停在上或选择步骤来删除 canvas 上的任何步骤。这将生成一个工具栏,其中包含 Delete 操作按钮。

  2. 或者,您可以通过调用步骤上的上下文菜单并选择项目 Delete 来执行此操作。这将从集成中删除步骤。

4.1.5. 启用/禁用步骤

  1. 您可以通过将鼠标悬停在或选择步骤来启用或禁用 canvas 上的任何步骤。这将生成一个工具栏,其中包含 Enable / Disable action 的按钮。

    重要

    禁用步骤将指示 Apache Camel 运行时在执行流时忽略步骤。这在原型构建新路由时非常方便。

  2. 或者,您可以通过在步骤上调用上下文菜单并选择项目 Enable / Disable 来启用/禁用路由中的任何步骤。

  3. 在上图中,日志 组件已被禁用。图标灰显,在步骤右上角有一个标记图标来指示它被禁用。

4.1.6. 生成集成文档

  1. 您可以使用内置文档生成功能来创建 Markdown 文件,其中包含集成中的所有步骤以及这些步骤的所有更改的参数以及集成镜像。

  2. 单击该按钮时,它将打开一个对话框,其中包含集成文档的预览。

  3. 您可以使用对话框左上角的 Visible Entities 控制哪些路由是文档的一部分。
  4. 您可以选择 all,只选择一个子集,甚至只选择一个路由。做出选择后,您可以在右上角指定文件名,然后按 Download 按钮,以 ZIP 格式检索文件。

第 5 章 Kaoto DataMapper

注意

目前,只有 Visual Studio Code 扩展中支持 Kaoto DataMapper 作为技术预览功能。未来,我们将把此功能带入 Kaoto 的纯纯 Web 版本。

注意

目前,DataMapper 只支持 XML 模式来渲染数据结构,并在内部生成一个 XSLT 步骤来在运行时执行配置的数据映射。虽然您可以使用映射到 XSLT 参数的 Camel 变量和/或 Message Headers 来消耗多个 XML 文档,但输出只是 Camel 消息正文。

除了常规的 Camel 步骤外,K Kaoto 现在支持将 Kaoto DataMapper 步骤放置在 Camel Route 中。Kaoto DataMapper 步骤提供了一个图形用户界面,用于在 Camel Route 中创建数据映射。

5.1. 添加 DataMapper 步骤

  1. 在 Camel 路由中添加 Kaoto DataMapper 步骤。当您 附录,或替换 Kaoto Design 视图中的步骤时,您可以在目录中找到 Kaoto DataMapper 步骤。

  1. Kaoto DataMapper 步骤的 Kaoto DataMapper 步骤来打开配置表单。

  2. Kaoto DataMapper config 表单中,单击 Configure 按钮。

  3. 这将打开可视 DataMapper 编辑器。

5.2. 源和目标

在 DataMapper canvas 中,您可以在左侧看到 SourceTarget 部分。

Source 部分代表您的映射的输入端,DataMapper 步骤从中读取数据。这被映射到传入的 Camel 消息 以及可能的 Camel 变量

Target 部分代表映射的输出部分,其中 DataMapper 步骤将数据写入。这映射到传出 Camel 消息

5.3. 参数

Source 中的 Parameters 部分映射到任何传入的 Camel 变量和 消息标头。例如,如果存在传入的 Camel 变量顺序,您可以在 DataMapper Source/Parameters 部分中添加参数 orderSequence 来使用它。

按照以下步骤添加参数:

  1. Parameters 标题右侧的加号(+)按钮。

  2. 现在输入参数名称,然后点击右侧的选择按钮。

注意

虽然 Camel Exchange Properties 也被映射到当前 camel-xslt-saxon 实现中的参数,但在引入 Camel 变量后,不再建议将应用程序数据存储在 Camel Exchange Properties 中。我们鼓励使用 Camel 变量

5.4. 附加文档架构文件

如果任何 Source BodyTarget Body 和/或 Parameter (s) 是结构化数据,您可以附加一个架构文件并在树形视图中视觉化数据结构。

注意

如果数据不是结构化的,而只是一个原语值,则不需要附加一个模式文件。

按照以下步骤附加一个 schema 文件:

  1. 将架构文件放在工作区目录中。
  2. 单击 Source BodyTarget BodyParameters 部分中的 Attach a schema 按钮。

  1. 选择要附加的 schema 文件

  2. 现在,文档结构呈现在一个树中。

5.5. 创建简单映射

5.5.1. 通过拖放字段来创建映射

当您在源和目标之间执行拖放时,会创建一个映射,并在字段间绘制一行。

示例 :在 target Name 字段中拖放 source Name 字段来映射 Name 字段。

之前

之后

5.5.2. 通过输入 XPath 表达式来创建映射

您还可以通过输入 XPath 表达式来创建映射。

  1. 单击 3 dots 上下文菜单,然后在目标字段中选择,然后选择 Add selector expression

  2. 然后输入 XPath 表达式

5.6. 创建条件映射

DataMapper 支持创建 3 种条件映射:

  1. if - 只有满足指定条件时才创建映射。
  2. choose-when-otherwise - 映射会根据条件的满足方式创建。如果满足 when 分支条件,则 when 分支映射为 . created。如果没有满足 分支 条件,则创建 otherwise 分支映射。
  3. for-each - 为集合中的每个项目创建映射。集合表示多次出现,这通常以数组表示。

5.6.1. 创建 if mapping

  1. 点 target 部分字段上的 3 dot 上下文菜单。然后选择 wrap with "if" 来创建映射。

  2. 配置 if 条件。您可以拖动 source 字段并将其放到输入字段以构建条件,或者手动键入所有内容。

  3. 使用拖放或手动输入来配置映射。

5.6.2. 创建 选择时 的映射

  1. 点 target 部分字段上的 3 dot 上下文菜单。然后,选择 wrap with "choose-when-otherwise" 来创建映射。

  2. 配置 when 条件。

  3. 配置 when 分支的映射。

  4. 配置 otherwise 分支的映射。

  5. 如果需要,您可以在分支 添加一个或多个。要添加另一个 when 分支,您可以单击 Target 部分中的 select 字段中的 3 dots 菜单,然后选择 Add "when "。

5.6.3. 创建 针对每个 映射

当一个字段是集合字段(代表多次发生时,通常以数组表示),您可以创建一个 针对每个 映射。字段上的层图标表示它是一个集合字段。

  1. 点 target 部分的 collection 字段中的 3 dot 上下文菜单。然后,选择 wrap with "for-each" 来创建映射。

  2. 通过指定要迭代的 source collection 字段来配置 for-each 条件。

  3. 配置以下映射。请注意,映射字段路径现在是来自 for-each 条件中指定的 collection 字段的相对路径。

5.7. 使用 XPath 表达式编辑器

注意

XPath 编辑器仍在初始开发中,目前只支持有限拖放。在以后的发行版本中,将添加更多语法协助功能。

如果要在 XPath 表达式而不是字段路径中编写更多内容,您可以启动 XPath 表达式编辑器并使用它。target 字段有一个铅笔图标,在点 XPath 表达式编辑器时启动它。

  1. 点击具有映射的目标字段中的铅笔图标。

  2. 这将打开 XPath 编辑器。

  3. 然后,您可以在右侧的编辑器中键入,或者将 Field 拖到左侧,然后拖放到编辑器。

  4. 您也可以从左侧的 Function 选项卡中拖放 XPath 函数。

  5. 将函数拖放到编辑器。

  6. 完成后,单击底部的 Close 按钮。

  7. 现在,您可以在 tree 视图中看到新的映射。

5.8. 删除映射

  1. 若要删除映射,您可以单击 target 字段旁边的 dustbin 按钮。

  2. 然后,您必须单击 Confirm 按钮以确认删除。

  3. 映射已删除。

5.9. 删除参数

  1. 若要删除参数,可单击 参数旁边的 dustbin 按钮。

  2. 然后,您必须单击 Confirm 按钮以确认删除。

  3. 参数已删除。

5.10. 分离模式

与附加模式类似,您还可以删除 / detach a schema。

  1. 单击 分离模式 按钮。

  2. 单击 Confirm 按钮。

  3. 现在,Document 返回为原语值。

第 6 章 生成目录

6.1. 概述

默认情况下,每个 Kaoto 版本都包含构建时可用的最新 Camel 版本,并且不会生成不同的目录集合。

6.2. 目录生成器 CLI

Kaoto 提供 Camel 目录生成器 CLI 来简化此过程,它支持以下运行时:

  1. Main
  2. Quarkus
  3. springboot

6.2.1. 使用 Camel 目录

  1. 克隆 Kaoto 项目
  2. 进入 package /catalog-generator 目录
  3. 安装项目依赖项:

    ./mvnw install
    Copy to Clipboard Toggle word wrap
  4. 使用以下命令运行项目:

    ./mvnw package; java -jar ./target/catalog-generator-0.0.1-SNAPSHOT.jar -o ./dist/camel-catalog -k 4.10.3.redhat-00017 -m 4.10.3.redhat-00020 -n "My Catalog"
    Copy to Clipboard Toggle word wrap
  5. 这将生成一个包含以下内容的目录库:

    1. Camel Main 4.6.0
    2. Camel Kamelets 4.6.0
  6. 生成的文件将位于 package /catalog-generator/dist/camel-catalog 文件夹中
  7. 通过 http 服务器提供该文件夹将使其可用于 Kaoto

6.2.2. 创建带有不同运行时的目录库

  1. 要在 Catalog 库中添加多个运行时,我们可使用以下标记为每个运行时提供其版本:

     -m,--main <version>               Camel Main version. If not specified,
                                       it will use the generator installed
                                       version
     -q,--quarkus <version>            Camel Extensions for Quarkus version
     -s,--springboot <version>         Camel SpringBoot version
    Copy to Clipboard Toggle word wrap
  2. 例如,运行以下命令会创建一个 Catalog 库,其中包含 Camel Main 4.6.0 和 Camel extensions for Quarkus 3.8.0 :

    ./mvnw package; java -jar ./target/catalog-generator-0.0.1-SNAPSHOT.jar -o ./dist/camel-catalog -k 4.6.0 -m 4.6.0 -q 3.8.0 -n "My Catalog"
    Copy to Clipboard Toggle word wrap
  3. 对于不同的 Kamelets 目录版本,可以指定 --kamelets 或 -k 标志。

    ./mvnw package; java -jar ./target/catalog-generator-0.0.1-SNAPSHOT.jar -o ./dist/camel-catalog -k 4.5.0 -m 4.6.0  -n "My Catalog"
    Copy to Clipboard Toggle word wrap

6.2.3. 指示 Kaoto 使用特定的目录库

  1. 在 VSCode 中,前往设置页面并查找"Kaoto"

  2. TextField 中,提供 index.json 文件的 URL,该文件用于指定后续目录的位置,例如,可以使用公共 Kaoto 目录:

  3. 重启 Kaoto 以使更改生效

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部