我一直试图通过在app.run(host="0.0.0.0")
上运行它来从外部访问我的flask API,但它无法正常工作。
为了调试此问题,我将API简化为我能想到的最简单的形式:
from flask import Flask, request
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
class Query(Resource):
def get(self):
return {'Status': 'Test'}
api.add_resource(Query, "/v1/timeseries")
if __name__ == "__main__":
app.run(host="0.0.0.0")
它似乎工作正常:
* Serving Flask app "test-server" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
但是该API仅可通过http://127.0.0.1:5000/v1/timeseries访问,并且当我将URL更改为http:// MyPublicIP:5000 / v1 / timeseries
时将无法使用。我已禁用所有我知道的网络限制,并尝试在Windows和EC2 Linux服务器上本地运行同一测试服务器。在这两种情况下,我都无法使用自己的公共IP地址访问API。
我想公开我的API以执行一些测试并继续进行部署。