我想检查属性的以下路径是否存在:
s3_bucket = node['elastic']['s3']['bucket']
这是json:
"elastic": {
"version": "5.4.1",
"cluster": "cluster-dev",
"node": "node1",
"host": "localhost",
"port": 9201,
"username": "elasticsearch",
"groupname": "elasticsearch",
"s3" : {
"bucket": "hello"
}
}
根据环境,字段s3可能不存在,我想在获取属性桶之前检查一下。我怎么能这样做?
答案 0 :(得分:3)
对于较新的Chef,您可以使用node.read
方法:
s3_bucket = node.read('elastic', 's3', 'bucket')
如果没有任何介入密钥,它将是nil
。
答案 1 :(得分:1)
s3_bucket = node['elastic']['s3']['bucket'] if node['elastic']['s3']