win*_*aed 4 .net amazon-web-services amazon-elastic-beanstalk
我正在使用AWS基础架构开发更广泛的Web应用程序.它有两个'worker'组件,它们从SQS读取工作并将结果写入RDS数据库.其中一个是Python,我已经在单个Elastic Beanstalk实例上工作了.第二个使用.NET,我目前正在研究如何部署它.对于生产,两者都具有多个实例的弹性.
由于这些处理组件不是Web应用程序(即它们不响应http请求),我必须明确地启动它们.对于Python示例,我使用.ebextensions文件:
container_commands:
02-start-command:
command: "nohup python scannerapp.py > foo.out 2> foo.err < /dev/null &"
leader_only: false
Run Code Online (Sandbox Code Playgroud)
如何使用.NET应用程序执行相同的操作?与上面的Python/Linux示例一样,Windows配置文件支持"命令"和"容器命令",但这些文件适用于启动程序(例如安装程序).IE浏览器.在命令退出之前,启动/安装不会完成.nohup命令解决了Python的问题.如何使用.NET worker应用程序执行此操作?
或者它太难了,我应该考虑首先移植到MONO并使用其中一个Linux选项?(MONO运行成本预计会更具成本效益,因此它已经列入未来的待办事项列表)
您可以使用.NET容器执行相同的操作.您必须将工作程序安装为Windows服务.看看这篇博文,详细解释了它.在高级别,您将有一个.ebextensions文件,其中包含:
sources:
c:/AppSupport/MyAppJanitor: http://s3.amazonaws.com/my-app-support/MyAppJanitor.zip
commands:
install-janitor:
command: C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\installutil MyAppJanitor.exe
cwd: c:/AppSupport/MyAppJanitor
waitForCompletion:0
services:
windows:
MyAppJanitor:
enabled: true
ensureRunning: true
commands: install-janitor
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2372 次 |
| 最近记录: |