我是JSON的新手。我在AWS Opswork中创建了自定义JSON,并尝试将其作为Chef配方中的属性进行访问,但遗憾的是它没有捕获JSON值。我的JSON文件看起来像..
{
"normal": {
"filebeat_minjar": {
"log_path" : "/var/log/*.log",
"hosts" : "Some Random Host ID",
"port" : 5000
}
}
}
我想在食谱中抓住它,
log = node['filebeat_minjar']['log_path']
hosts = node['filebeat_minjar']['hosts']
port = node['filebeat_minjar']['port']
但它失败了,我也试过没有'正常'。我得到了一些[] null类错误。
答案 0 :(得分:0)
试试这种方式,
log = node['normal']['filbeat_minjar']['log_path']
hosts = node['normal']['filbeat_minjar']['hosts']
port = node['normal']['filbeat_minjar']['port']
或
log = node.normal.filbeat_minjar.log_path
hosts = node.normal.filbeat_minjar.hosts
port = node.normal.filbeat_minjar.port
Json对象就像一棵树,元素就是树枝。 希望这个帮助
答案 1 :(得分:0)
您的Chef代码是正确的,但您需要修复JSON。您不需要"normal": {...}
,Chef和OpsWorks将为您处理。{/ p>
答案 2 :(得分:0)
以下为我工作。
自定义JSON
{
“生产”:{ “ApplicationLayer”:{ “DockerTag”:“Version1” } }
}
来自大厨食谱。
node[:Production][:ApplicationLayer][:DockerTag]