如何将 flask-socketio 应用程序部署到 Google Cloud Platform App Engine
How to deploy flask-socketio app to Google Cloud Platform App Engine
我编写了一个 flask-socketio 应用程序,通过 websockets 向网站提供数据。
我的目录结构是这样的:
- main.py
- 网站
- index.html
- main.js
- style.css
我的app.yaml是这样的:
runtime: python38
handlers:
- url: /
static_files: website/index.html
upload: website/index.html
- url: /
static_dir: website
entrypoint: python main.py
我运行 gcloud app deploy 在目录中,并设法将网站部署到GCP。现在可以在 https://codevis.ew.r.appspot.com/
下使用
但是,flask-socketio 应用程序未 运行,我无法连接到该网站。
我的 main.py 像这样部署 flask-socketio 应用程序:
app = Flask(__name__)
socketio = SocketIO(app, cors_allowed_origins="*")
[...]
def run_app():
socketio.run(app, debug=True)
if __name__ == "__main__":
run_app()
在我的 main.js 中,我正在尝试像这样连接到 flask-socketio:
var socket = io.connect("https://codevis.ew.r.appspot.com:5000");
在本地测试 flask-socketio 时(使用 var socket = io.connect("http://127.0.0.1:5000");),一切正常。我只是无法让 GCP App Engine 实际上 运行 flask-socketio 应用程序。我做错了什么?
App 引擎标准不支持 websockets。您可以在 App Engine Flexible 上执行此操作,但不能扩展到 0(这意味着额外费用)
对于规模为 0 的平台,您可以考虑 Cloud 运行,它很快就能接受定向 websockets。
我遇到了 Feature Request 现有的实现此功能的方法。
您可以 星标 它以提高知名度,并将您的电子邮件包含在 CC 部分中,以便接收有关的进一步更新这个。但是,请记住,由于它是一个功能请求,因此目前没有可用于实施的 ETA。
我编写了一个 flask-socketio 应用程序,通过 websockets 向网站提供数据。
我的目录结构是这样的:
- main.py
- 网站
- index.html
- main.js
- style.css
我的app.yaml是这样的:
runtime: python38
handlers:
- url: /
static_files: website/index.html
upload: website/index.html
- url: /
static_dir: website
entrypoint: python main.py
我运行 gcloud app deploy 在目录中,并设法将网站部署到GCP。现在可以在 https://codevis.ew.r.appspot.com/
下使用但是,flask-socketio 应用程序未 运行,我无法连接到该网站。
我的 main.py 像这样部署 flask-socketio 应用程序:
app = Flask(__name__)
socketio = SocketIO(app, cors_allowed_origins="*")
[...]
def run_app():
socketio.run(app, debug=True)
if __name__ == "__main__":
run_app()
在我的 main.js 中,我正在尝试像这样连接到 flask-socketio:
var socket = io.connect("https://codevis.ew.r.appspot.com:5000");
在本地测试 flask-socketio 时(使用 var socket = io.connect("http://127.0.0.1:5000");),一切正常。我只是无法让 GCP App Engine 实际上 运行 flask-socketio 应用程序。我做错了什么?
App 引擎标准不支持 websockets。您可以在 App Engine Flexible 上执行此操作,但不能扩展到 0(这意味着额外费用)
对于规模为 0 的平台,您可以考虑 Cloud 运行,它很快就能接受定向 websockets。
我遇到了 Feature Request 现有的实现此功能的方法。
您可以 星标 它以提高知名度,并将您的电子邮件包含在 CC 部分中,以便接收有关的进一步更新这个。但是,请记住,由于它是一个功能请求,因此目前没有可用于实施的 ETA。