2014-12-07 31 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 
相關問題