首页 > 解决方案 > 数据包“aws_opsworks_instance”不可用

问题描述

有谁知道为什么

instance = search('aws_opsworks_instance', 'self:true').first

# ...

    instance_host: instance['hostname']

会间歇性地导致

nil:NilClass 的未定义方法“[]”

在 OpsWorks 上?

我一直在寻找几个小时,但没有找到任何东西,所以我开始认为这是一个副产品,而不是实际问题。

由于它每隔一段时间就会发生一次,我认为这可能是一种“竞争条件”。也许 OpsWorks 需要一段时间来注入它,所以需要告诉 Chef 等待?如果是这样,我在文档中找不到任何类似的东西。

任何想法为什么会发生这种情况以及如何解决/避免它?

标签: chef-infraamazon-cloudformationaws-opsworks

解决方案


这是特定于 aws opswork 的。这是aws 文档的摘录:

Chef 搜索self:true查找包含与正在执行配方的实例相关的信息的数据包项

从您的帖子的输出中,instanceis是没有搜索结果时返回null的值。search()

也许运行 chef-client with--log_level debug会揭示更多信息或尝试联系 aws 支持团队。


推荐阅读