用木偶5.3.3。在我当地的环境中。
$ facts [' ec2_metadata'] [' instance-id'] 不会退出。
我试过这个......
$instance_id = pick($facts['ec2_metadata']['instance-id'], $facts['ipaddress'])
这就是......
if defined($facts['ec2_metadata']['instance-id']) {
$instance_id = $facts['ec2_metadata']['instance-id']
} else {
$instance_id = $facts['ipaddress']
}
这就是......
if getvar($facts['ec2_metadata']['instance-id']) {
$instance_id = $facts['ec2_metadata']['instance-id']
} else {
$instance_id = $facts['ipaddress']
}
这就是......
if $facts['ec2_metadata']['instance-id'] != undef {
$instance_id = $facts['ec2_metadata']['instance-id']
} else {
$instance_id = $facts['ipaddress']
}
正如所料,我总是得到......
==> default: Error: Evaluation Error: Operator '[]' is not applicable to an Undef Value. at ...
有什么想法吗?
感谢。
更新
即使这样也会启动错误。
notify{$facts['ec2_metadata']['instance-id']:}
那么,不可能召唤一个未解决的事实?
答案 0 :(得分:1)
不确定。您可以使用stdlib函数has_key
,例如
include stdlib
if has_key($facts['ec2_metadata'], 'instance-id') {
notice("All OK")
}
文档为here。