我正在使用AWS基礎架構開發更廣泛的Web應用程序。它有兩個「工人」組件,它們從SQS讀取工作並將結果寫入RDS數據庫。其中之一是Python,我已經在單個Elastic Beanstalk實例上工作。第二個使用.NET,我目前正在研究如何部署它。對於生產而言,兩者都將具有多個實例的彈性。使用Elastic Beanstalk部署.NET worker應用程序
由於這些處理組件不是Web應用程序(即它們不響應http請求),我必須明確地啓動它們。對於Python示例,我使用.ebextensions文件:
container_commands:
02-start-command:
command: "nohup python scannerapp.py > foo.out 2> foo.err < /dev/null &"
leader_only: false
我該如何對.NET應用程序執行相同的操作? 與上面的Python/Linux例子一樣,Windows配置文件支持'命令'和'容器命令',但是它們是爲啓動程序(例如安裝程序)設計的。 IE瀏覽器。直到命令退出,啓動/安裝纔會完成。 nohup命令解決了Python的問題。我如何用.NET工作應用程序來做到這一點?或者是太難了,我應該考慮首先移植到MONO並使用其中一個Linux選項? (MONO的運行成本預計會更具成本效益,因此它已經在未來的待辦事項列表中)
謝謝 - 是的博客文章(和第2部分)是有用的。我不是唯一一個發現AWS文檔很差的人 - 至少亞馬遜似乎在他們的博客中認識到 - 令人遺憾的是,Google並沒有把索引編制好!關於研究Windows服務的編寫(不應該需要很多更改),並且一旦我完成了一切,我將在本週晚些時候回覆... – winwaed
我將此標記爲答案。我已經將我的項目更改爲一項服務(並且可以在本地PC上正常運行)。我也將它部署到EB。我的上傳文件只是.ebextensions配置信息的zip文件。實際的服務exe,config,dll和數據文件都以S3託管的zip形式傳遞。不過,我目前正在主處理線程的開始處發現「FileNotFound」異常。至少該服務已經開始,並且正在變得如此遙遠!雖然我正在打磚牆,但我認爲新問題更合適。 – winwaed