我不断从 Chef 那里收到此错误,但找不到任何文档或其他拥有该错误的人。
可能的根本原因是什么?
当 Chef 找不到数据包“id”时,您通常会收到此错误
假设我想加载以下 data_bag
data_bags
apps
mywebserver.json
apps
recipes
default.rb
[mywebserver.json]
{
"id": "mywebserver"
}
[default.rb]
data_bag_item("apps", "mywebserver") # The id specified in the json
我相信厨师不关心 data_bag_item 文件名,而只关心数据包项 json 文件之一中指定的“id”。
更多信息在这里会有所帮助。当您看到此内容时,您打算采用什么工作流程?
我将假设这不是一个刀呼叫。我试图在chef-gem中围绕您的错误来源进行一些调试,并调用数据包列表和数据包显示。似乎都没有碰到 mixin 代码。
以下是您在 mixin/language 下的 chef gem 中的错误来源
def data_bag(bag)
DataBag.validate_name!(bag.to_s)
rbag = DataBag.load(bag)
rbag.keys
rescue Exception
Log.error("Failed to list data bag items in data bag: #{bag.inspect}")
raise
end
现在我不知道是什么在访问该 mixin 代码,因为 gem 中对 data_bag() 的所有其他引用都引用了 data_bag_item 对象周围的代码。
这是您创建的自定义代码吗?您是否有可能引用了错误的模块?