Chef infra 数据包&x27;aws#u opsworks#u实例';无法使用的

Chef infra 数据包&x27;aws#u opsworks#u实例';无法使用的,chef-infra,amazon-cloudformation,aws-opsworks,Chef Infra,Amazon Cloudformation,Aws Opsworks,有人知道为什么吗 instance=search('aws\u opsworks\u instance','self:true')。首先 # ... 实例\主机:实例['hostname'] 会断断续续地导致 nil:NilClass的未定义方法“[]” 在OpsWorks上 我已经搜索了几个小时,但什么也没找到,所以我开始认为这是一个副产品,而不是实际问题 由于这种情况偶尔会发生,我想这可能是一种“种族状况”。也许OpsWorks注射这个需要一段时间,所以厨师需要被告知等待?如果是这样的话,

有人知道为什么吗

instance=search('aws\u opsworks\u instance','self:true')。首先
# ...
实例\主机:实例['hostname']
会断断续续地导致

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

在OpsWorks上

我已经搜索了几个小时,但什么也没找到,所以我开始认为这是一个副产品,而不是实际问题

由于这种情况偶尔会发生,我想这可能是一种“种族状况”。也许OpsWorks注射这个需要一段时间,所以厨师需要被告知等待?如果是这样的话,我在文档中找不到类似的东西


您知道为什么会发生这种情况,以及如何修复/避免这种情况吗?

这是针对aws opswork的。以下是一个例外:

使用
self:true
查找包含与正在执行配方的实例相关信息的项

从帖子中的输出来看,
实例
null
,这是当没有搜索结果时
search()
返回的值


也许运行带有
--log_level debug
的chef client将揭示更多信息,或者尝试联系aws支持团队。

OpsWorks似乎依赖实例名称来识别这些数据包,因此由于我们的脚本要求同时创建几个新实例,因此在分配名称时存在一些冲突(即名称重复)

通过将奥普斯沃克斯的命名主题从希腊诸神和泰坦(如赫拉克勒斯、宙斯、波塞冬)改为依赖于层(如api1、api2、notifications1、notification2),避免了这个问题


虽然对于Opsworks使用相同名称命名两个实例的问题,这可能不是一个确定的解决方案,但我还没有遇到使用依赖于层的命名的问题,因此至少机会大大减少了。

是的,我也这么认为。我阅读了文档,似乎这个数据包是Opsworks注入的。我没有找到什么有什么东西可以解释为什么它偶尔会失败。有什么想法吗?@chrisandrew.cl:我已经更新了我的答案,希望它能帮助你。我还没有时间尝试调试配方,但如果我没有很快得到回复(AWS或其他人的回复),我肯定会这么做。谢谢你的回答!:)