如何在云托管服务器(Google,Amazon,Azure ...)上托管python服务器脚本?

时间:2016-05-11 22:52:38

标签: python server cloud hosting python-requests

让我先回答明显的问题。我为什么要这样做?实际上,我没有。我在下面制作了以下程序,但它的设计目的是在远程服务器上运行。我基本上使用套接字库,但我想在另一台机器上托管它,最好是google,amazon,azure等。但是,正如我之前所知,我尝试过,这有点不可能。谷歌应用程序引擎给了我一个错误,如“访问被拒绝插槽等等等等”。

我觉得我有两个选择:

我可以继续在我自己的服务器上运行此代码,如果我可以弄清楚如何在托管的云服务器上托管此服务器脚本,或者我可以获取代码,每个不包含服务器部分的位,并通过POST请求从客户端获取“数据”。

数据是从客户端发送的数据......

bap = {}
while 1:
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    server_address = ("localhost", 8081)
    #print 'starting up on %s port %s' % server_address
    server.bind(server_address)
    server.listen(5)
    connection, client_address = server.accept()
    #print 'connection from', connection.getpeername()
    server.close()
    data = connection.recv(4096)

    if data in bap:
        print data + " is checking in!!!"
        for k, v in bap.iteritems():
            if k == data:
                bap[k] = 10
                print bap
                c = open('check.json', "w")
                wiz = json.dumps(bap)
                c.write(wiz)
                c.close()
            else:
                bap[k] -= 1
                if bap[k] < 0:
                    print k + " is Offline!!!"
                    mail()
                    c = open('log.txt', "a")
                    wiz = json.dumps(bap)
                    time1 = datetime.datetime.now().strftime("%m/%d/%y %H:%M ")
                    c.write(k + " is offline!!! "+ time1 + "\n")
                    c.close()
                else:
                    print bap
    else:
        bap[data] = 10
        print data + " was added!!!"

1 个答案:

答案 0 :(得分:1)

可以在Amazon EC2上运行侦听外部端口的python脚本。

1)使用Amazon Web Services处的管理控制台创建EC2实例。

2)编辑与您的实例关联的安全组,以便打开您希望python脚本收听的端口号。

3)在EC2实例上上传并运行脚本。确保脚本正在侦听的端口号与您在安全组中打开的端口号相同。

如果您通过SSH连接到您的EC2实例,您可能希望使用TMUX之类的东西在“后台进程”中运行python脚本。否则,当您终止SSH连接时,您的python脚本将停止运行。