分类

YAML文件合并工具

将多个YAML文件合并成一个文件,支持多种合并策略(深度合并、覆盖合并等)

Click to upload files or drag and drop files here

Maximum file size: 10MB Maximum files: 5
Supported formats: application/x-yaml, text/yaml, text/plain, .yaml, .yml

关键信息

分类
Data Processing
输入类型
file, select
输出类型
file
样本覆盖
4
支持 API
Yes

概览

YAML文件合并工具是一个在线实用程序,用于将多个YAML文件合并为一个文件。它提供深度合并、浅层合并和覆盖等多种策略,并可灵活处理数组合并与键值冲突,是整合分散配置文件的理想选择。

适用场景

  • 需要将分散在多个文件中的YAML配置(如Kubernetes清单、应用设置)合并为单一文件时。
  • 在开发、测试和生产等不同环境中,需要合并基础配置与环境特定配置时。
  • 当多个团队或服务各自维护部分YAML数据,需要将其整合为统一数据视图时。

工作原理

  • 上传一个或多个YAML文件(最多5个)。
  • 选择合并策略:深度合并(递归合并嵌套对象)、浅层合并(仅合并顶层键)或覆盖(后文件覆盖前文件)。
  • 配置数组处理方式(如替换、拼接、去重合并)和键值冲突解决规则(如覆盖、保留前者、报错)。
  • 点击合并按钮,工具将根据您的设置处理文件,并生成一个合并后的YAML文件供下载。

使用场景

合并多个Kubernetes部署文件(如deployment.yaml, service.yaml, configmap.yaml)为一个完整的应用清单。
将通用的`application.yml`基础配置与特定环境的`application-prod.yml`配置合并,生成最终的生产环境配置文件。
整合来自不同微服务或模块的YAML配置片段,形成统一的全局配置视图。

用户案例

1. 合并 Kubernetes 部署配置

背景原因
运维工程师小张为一个新服务准备了三个独立的YAML文件:定义部署的`deployment.yaml`、定义服务的`service.yaml`和定义配置映射的`configmap.yaml`。
解决问题
他需要将这些文件合并成一个单一的`app-stack.yaml`文件,以便于一次性应用到集群中。
如何使用
依次上传这三个文件,选择“深度合并”策略,数组处理选择“拼接”,冲突解决选择“报错”以确保安全。
效果
工具成功生成了一个包含所有Kubernetes资源定义的单一YAML文件,结构清晰,可直接用于`kubectl apply -f`命令。

2. 整合多环境应用配置

后端开发者
背景原因
开发者小李有一个基础配置`base-config.yaml`和一个生产环境覆盖配置`prod-override.yaml`。基础配置包含所有默认设置,生产配置只覆盖了数据库连接和日志级别等少数几项。
解决问题
他需要生成一个完整的、可用于生产环境部署的最终配置文件`final-prod-config.yaml`。
如何使用
先上传`base-config.yaml`,再上传`prod-override.yaml`。选择“深度合并”策略,数组处理选择“替换”,冲突解决选择“覆盖”(即后文件优先)。
效果
工具生成了一个新的配置文件,其中生产环境的特定设置正确覆盖了基础配置中的对应项,其余设置保持不变。

用 Samples 测试

yaml, text, file

相关专题

常见问题

最多可以合并多少个YAML文件?

单次操作最多支持合并5个YAML文件。

“深度合并”和“浅层合并”有什么区别?

深度合并会递归合并所有嵌套对象和数组;浅层合并只合并顶层键,如果键相同,后文件的值会完全覆盖前文件的整个值(包括其所有子结构)。

“数组处理”中的“按Key合并”是什么意思?

此选项适用于数组元素为对象的情况。它会根据对象中指定的共同键(如`id`或`name`)来匹配并合并数组中的对象,而不是简单地追加或替换整个数组。

如果两个文件有相同的键但值不同,会怎么处理?

这取决于您选择的“冲突解决”策略。您可以选择用后文件的值覆盖、保留先出现的值,或者在遇到冲突时直接抛出错误停止合并。

合并后会保留原文件中的注释吗?

默认不保留注释以确保合并结果的简洁和确定性。您可以在选项中选择“是”来尝试保留注释,但这取决于文件结构和合并操作的复杂性。

API 文档

请求端点

POST /zh/api/tools/yaml-merger

请求参数

参数名 类型 必填 描述
yamlFiles file (需要先上传) -
mergeStrategy select -
arrayStrategy select -
conflictResolution select -
preserveComments select -

文件类型参数需要先通过 POST /upload/yaml-merger 上传获取 filePath,然后将 filePath 传递给对应的文件字段。

响应格式

{
  "filePath": "/public/processing/randomid.ext",
  "fileName": "output.ext",
  "contentType": "application/octet-stream",
  "size": 1024,
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
文件: 文件

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-yaml-merger": {
      "name": "yaml-merger",
      "description": "将多个YAML文件合并成一个文件,支持多种合并策略(深度合并、覆盖合并等)",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=yaml-merger",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

支持 URL 文件链接或 Base64 编码作为文件参数。

如果遇见问题,请联系我们:[email protected]