JSON 不得超过 1000000 字节
JSON must be no more than 1000000 bytes
我们有一个 Jenkins-Chef 设置,其中有一个 QA 构建项目到一个客户的网站。构建从 Bitbucket 获取代码,脚本将食谱从 Chef 客户端上传到 Chef 服务器。
这些构建 运行 很长一段时间都很好。两天前,自动和手动构建开始失败并出现以下错误(取自 Jenkins 控制台输出):
Updated Environment qa
Uploading example-deployment [0.1.314]
ERROR: Request Entity Too Large
Response: JSON must be no more than 1000000 bytes.
据我了解,JSON 文件应该与开发人员在此网络服务器上使用的 nodejs 相关。
我们查看了 Jenkins、Chef-Server 和 QA 服务器的所有配置文件。我们找不到更改导致此错误的 1MB 限制的方法。
我们尝试更改 client_max_body_size,但没有成功。
我们检查了 JSON 个文件大小,没有一个达到此限制。
知道我们在哪里可以找到解决方案吗?这个限制可以改变吗?有什么我们可以做的(基础设施方面的)还是应该从开发人员方面解决这个问题?
所以首先,1M 值或多或少是硬编码的,chef-server 不打算存储大对象。
在上传食谱之前,会创建一个包含其信息的 json 文件,因为该文件将存储在数据库中并进行索引,因此不应超过太大的大小以避免性能问题。
想法是仅将绝对必要的内容上传到 chef-server,剥离 CVS 目录、任何 IDE build/project 文件等
实现它的最佳解决方案是使用 chefignore file。它必须在 cookbook_path 下创建。
此内容是上传食谱时要忽略的通配符匹配项,例如:
*/.svn/* # To strip subversion directories
*/.git/* # To strip git directories
*~ # to ignore vim backup files
我们有一个 Jenkins-Chef 设置,其中有一个 QA 构建项目到一个客户的网站。构建从 Bitbucket 获取代码,脚本将食谱从 Chef 客户端上传到 Chef 服务器。
这些构建 运行 很长一段时间都很好。两天前,自动和手动构建开始失败并出现以下错误(取自 Jenkins 控制台输出):
Updated Environment qa
Uploading example-deployment [0.1.314]
ERROR: Request Entity Too Large
Response: JSON must be no more than 1000000 bytes.
据我了解,JSON 文件应该与开发人员在此网络服务器上使用的 nodejs 相关。
我们查看了 Jenkins、Chef-Server 和 QA 服务器的所有配置文件。我们找不到更改导致此错误的 1MB 限制的方法。
我们尝试更改 client_max_body_size,但没有成功。 我们检查了 JSON 个文件大小,没有一个达到此限制。 知道我们在哪里可以找到解决方案吗?这个限制可以改变吗?有什么我们可以做的(基础设施方面的)还是应该从开发人员方面解决这个问题?
所以首先,1M 值或多或少是硬编码的,chef-server 不打算存储大对象。
在上传食谱之前,会创建一个包含其信息的 json 文件,因为该文件将存储在数据库中并进行索引,因此不应超过太大的大小以避免性能问题。
想法是仅将绝对必要的内容上传到 chef-server,剥离 CVS 目录、任何 IDE build/project 文件等
实现它的最佳解决方案是使用 chefignore file。它必须在 cookbook_path 下创建。
此内容是上传食谱时要忽略的通配符匹配项,例如:
*/.svn/* # To strip subversion directories
*/.git/* # To strip git directories
*~ # to ignore vim backup files