繁体   English   中英

在 GCP 中浏览 Flask 应用时出现“502 Bad Gateway nginx”错误

[英]'502 Bad Gateway nginx' error for browsing Flask app in GCP

我的 Google App Engine 应用程序出现此问题。 当我使用gcloud app browse运行应用程序时,页面会显示以下错误消息:

'502 错误网关 nginx'

我正在使用 Flask 应用程序。

这是代码:

import os
from flask_uploads import UploadSet, configure_uploads, IMAGES, patch_request_class
from uuid import uuid4
from flask import Flask, request, render_template, send_from_directory
import io
from google.cloud import vision
from google.cloud.vision import types

app = Flask(__name__)
app.config['UPLOADED_PHOTOS_DEST'] = os.getcwd()

photos = UploadSet('photos', IMAGES)
configure_uploads(app, photos)
patch_request_class(app)  

APP_ROOT = os.path.dirname(os.path.abspath(__file__))

os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="json_key.txt"
vision_client = vision.ImageAnnotatorClient()

@app.route('/', methods=['GET', 'POST'])
def upload_file():
    labels = ''
    file_url1 = ''
    filename = ''
    file_url = ''
    target = os.path.join(APP_ROOT, '/')
    if request.method == 'POST' and 'photo' in request.files:
        filename = photos.save(request.files['photo'])
        file_url = photos.url(filename)
        with io.open(filename, 'rb') as image_file:
            content = image_file.read()
        image = types.Image(content=content)
        response = vision_client.label_detection(image=image)
        labels = response.label_annotations
    return render_template('index.html', thelabels=labels,image_name=file_url)

"""@app.route('/<filename>')
def send_image(filename):
    #return render_template('index.html', filename=filename)
    return send_from_directory("/", filename)"""
if __name__ == '__main__':
    app.run()

这是 app.yaml 文件:

runtime: python37

而且我没有使用 requirements.txt 文件?

要部署 App Engine 应用程序,您至少需要 3 个文件。

  1. App.yaml 文件,其中包含所需的设置配置
  2. Main.py 与您的实际代码
  3. Requirements.txt 以导入所需的库

作为替代方案,您可以在部署 App 引擎应用程序时将库文件包含在文件中,但这不是推荐的方法,因为当您的应用程序扩展时,您将有更长的部署时间和更长的启动时间。

在这里你可以看到你想要的 requirements.txt 的例子

uwsgi==2.0.18
flask==1.1.1
google-cloud==0.34.0
google-cloud-vision==0.39.0
uuid==1.30.0
Flask-Uploads==0.2.1

您还可以运行命令pip freeze > requirements.txt获取所需的文件,但请记住,您应该仅在测试虚拟环境中运行此命令,因为如果您在工作环境中执行 pip 冻结,您将获得很长时间列出许多不需要的依赖项,这些依赖项会大大减慢您的应用程序部署

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM