为什么可以';我运行两个node.js AWS opsworks层吗?

为什么可以';我运行两个node.js AWS opsworks层吗?,node.js,amazon-web-services,aws-opsworks,Node.js,Amazon Web Services,Aws Opsworks,这可能很容易修复,但我似乎无法在AWS上部署两个node.js OpsWorks层。我的web前端需要有一个node.js层,中间层需要使用队列中的消息。我已经运行了web node.js层,但是现在当我尝试添加第二个node.js层时,node.js不是下拉列表中的选项之一。这是故意的吗?我被迫为node.js层创建第二个应用程序来处理这个问题,但这是一个丑陋的解决方案,因为默认情况下,所有node.js实例和负载平衡层上都运行相同的chef脚本。感谢您的帮助 创建第二个应用程序是最好的方法

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

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

在您的食谱中,您可以使用查看当前实例所在的层,并决定在运行配置/部署生命周期事件时应该做什么(如果有)

  • 在前端层上,您将部署前端应用程序并忽略 第二个应用程序,反之亦然,位于中间层
  • 在负载平衡器上,您可能不会在部署时执行任何操作
要确定在部署生命周期事件中部署的应用程序,可以利用chef中的搜索功能和应用程序上的“部署”属性

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

我可以为第二个node.js层创建一个新的堆栈,这并不理想,但目前还可以。