使用python在Elastic-beanstalk中部署TCP服务器

时间:2014-02-12 15:17:29

标签: python sockets amazon-web-services tcp elastic-beanstalk

我尝试使用tcp部署使用python编写的ThreadedTCPServer服务器。

可以在beanstalk中运行这个TCP服务器吗?

我不想使用或更改WSGI服务器。

我实现的一个时间解决方案是创建一个安装了tcp服务器的映像,当它启动时,它会自动启动服务器。我的beanstalk使用自定义ami来创建新实例。

然而,这样做,我无法使用beanstalk的好处(log,git aws.push等)

1 个答案:

答案 0 :(得分:2)

您可以使用container_command启动服务器进程。

我已经完成了与我的WSGI服务器一起运行的一些后端进程,但我不明白为什么你不能在没有WSGI服务器的情况下这样做。

这是我的.ebextensions / appname.config文件:

container_commands:
  01_kill_old_server:
    command: "pid=`ps -aefw | grep 'myserver.py' | grep -v ' grep ' | awk '{print $2}'`; kill -9 $pid > /dev/null 2>&1 "
    ignoreErrors: true
  02_start_server:
    command: "nohup python ./myserver.py > foo.out 2> foo.err < /dev/null &"

每次使用git aws.push进行部署时,它都会终止旧进程并从新代码启动新进程。

以下是container_commands文档:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-container_commands