2014-12-07 29 views
3

这可能很容易解决,但似乎我无法在AWS上部署两个node.js OpsWorks图层。我需要为我的Web前端创建一个node.js图层,并且我需要从队列中消费消息的中间层。我运行了web node.js图层,但现在当我尝试添加第二个node.js图层时,node.js不是下拉列表中的选项之一。这是故意的吗?我不得不为node.js层创建第二个应用程序来处理这个问题,但这是一个丑陋的解决方案,因为默认情况下,相同的chef脚本在所有node.js实例上和我的负载平衡层上运行。任何帮助感谢!为什么我不能运行两个node.js AWS opsworks图层?

+0

我可以为第二个node.js图层创建一个新的堆栈,这并不理想,但现在可以使用。 – worker1138 2014-12-08 00:14:25

回答

2

创建第二个应用程序是最好的方法。

在您的配方中,您可以使用stack configuration and deployment attribute values来查看当前实例驻留在哪一层,并决定在配置/部署生命周期事件运行时您应该做什么(如果有的话)。

  • 在您的前端层,你会部署前端应用程序而忽略 你的中间层层上的第二应用,反之亦然。
  • 在您的负载平衡器上,您可能无法执行部署。

要确定在部署生命周期事件中部署哪个应用程序,您可以利用厨师中的搜索功能和应用程序中的“部署”属性。

search(:aws_opsworks_app, "deploy:true").each do |app| 
    #Your deploy logic here 
end 
相关问题