Flask webservice不会收到外部消息

时间:2016-03-30 11:32:39

标签: c# python azure flask

我的情况:

本地机器上的Python webservice:

@annotate_overrides
class Rectangle(Shape):
    @override
    def area(self):
        return self.height * self.width

Azure Cloud中的C#webservice:

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/subscribe', methods=['POST'])
def subscribe():

    //Do webservice work...

    return "completed"

if __name__ == '__main__':
    app.run(host='0.0.0.0') 

当我运行C#webservice local时,Python webservice会收到消息。

但是当我从Azure Cloud运行C#webservice时,Python Web服务不会收到消息。

我已阅读Flask Quickstart manuel。 为什么Python不会收到外部消息?

1 个答案:

答案 0 :(得分:0)

根据我的理解,您希望从Azure上的C#客户端请求本地的Flask服务。

根据我的经验,简单的方法是使用端口转发配置本地路由器,并为ADSL动态IP配置动态DNS,然后C#客户端可以使用路由器的指定WAN端口访问域名。

如果您的路由器不支持这些功能,我认为您可以尝试使用Azure Service Bus在本地Flask服务和云C#服务之间建立通信。

原则是创建一对Service Bus Queue,用于在两个服务之间发送和接收。

  • Cloud C#服务将JSON消息作为请求发送到队列1,然后本地Flask服务通过轮询接收JSON消息,并将消息解析为参数以便工作。

      

    本地Flask服务< ------队列1< -------云C#服务

  • 本地Flask服务将完成的结果作为消息发送到队列2,然后云C#服务通过轮询接收结果消息。

      

    本地烧瓶服务------>队列2 ------->云C#服务