Zappa+Flask:对“/”的 GET 请求产生了 502 响应代码

Zappa+Flask: A GET request to '/' yielded a 502 response code

我正在尝试通过 zappa 在 aws lambda 上部署我的 Flask 应用程序。当我执行 zappa deploy dev:

时出现以下错误
Calling deploy for stage dev..
Downloading and installing dependencies..
 - sqlalchemy==1.3.16: Downloading
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1.24M/1.24M [00:00<00:00, 6.06MB/s]
 - psycopg2-binary==2.8.5: Downloading
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2.94M/2.94M [00:00<00:00, 8.30MB/s]
 - pandas==1.0.3: Using locally cached manylinux wheel
 - numpy==1.18.3: Using locally cached manylinux wheel
 - markupsafe==1.1.1: Downloading
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 27.5k/27.5k [00:00<00:00, 1.46MB/s]
Packaging project as zip.
Uploading prices-service-dev-1587997268.zip (44.2MiB)..
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 46.3M/46.3M [01:05<00:00, 710kB/s]
Scheduling..
Scheduled prices-service-dev-zappa-keep-warm-handler.keep_warm_callback with expression rate(4 minutes)!
Uploading prices-service-dev-template-1587997350.json (1.6KiB)..
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1.65k/1.65k [00:00<00:00, 19.7kB/s]
Waiting for stack prices-service-dev to create (this can take a bit)..
 75%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                          | 3/4 [00:09<00:03,  3.13s/res]
Deploying API Gateway..
Error: Warning! Status check on the deployed lambda failed. A GET request to '/' yielded a 502 response code.

当我执行 zappa init 时,它会生成以下 zappa_settings.json 文件:

{
    "dev": {
        "app_function": "main.app",
        "aws_region": "eu-central-1",
        "profile_name": "default",
        "project_name": "ps-zappa-test",
        "runtime": "python3.7",
        "s3_bucket": -MY_BUCKET_NAME-
    }
}

我的 main.py 文件是:

import os
from app import create_app
from config import config_by_name
from app.extensions import db

config_name = os.getenv("FLASK_CONFIG") or "default"
app_config = config_by_name[config_name]
app = create_app(app_config)

db.create_all(app=app)

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

我的依赖项:

aniso8601==8.0.0
argcomplete==1.11.1
attrs==19.3.0
beautifulsoup4==4.9.0
boto3==1.12.46
botocore==1.15.46
certifi==2020.4.5.1
cfn-flip==1.2.3
chardet==3.0.4
click==7.1.1
docutils==0.15.2
durationpy==0.5
entsoe-py==0.2.13
Flask==1.1.2
flask-marshmallow==0.12.0
flask-restx==0.2.0
Flask-SQLAlchemy==2.4.1
future==0.18.2
gunicorn==20.0.4
hjson==3.0.1
idna==2.9
importlib-metadata==1.6.0
itsdangerous==1.1.0
Jinja2==2.11.2
jmespath==0.9.5
jsonschema==3.2.0
kappa==0.6.0
MarkupSafe==1.1.1
marshmallow==3.5.1
marshmallow-sqlalchemy==0.23.0
more-itertools==8.2.0
numpy==1.18.3
packaging==20.3
pandas==1.0.3
pip-tools==5.0.0
placebo==0.9.0
pluggy==0.13.1
psycopg2-binary==2.8.5
py==1.8.1
pyparsing==2.4.7
pyrsistent==0.16.0
pytest==5.4.1
python-dateutil==2.6.1
python-dotenv==0.13.0
python-slugify==4.0.0
pytz==2019.3
PyYAML==5.3.1
requests==2.23.0
s3transfer==0.3.3
six==1.14.0
soupsieve==2.0
SQLAlchemy==1.3.16
text-unidecode==1.3
toml==0.10.0
tqdm==4.45.0
troposphere==2.6.0
urllib3==1.25.9
wcwidth==0.1.9
Werkzeug==0.16.1
wsgi-request-logger==0.4.6
zappa==0.51.0
zipp==3.1.0

当我执行 zappa tail 时,它给出:

Calling tail for stage dev..
[1587996139600] Instancing..
[1587996139773] Instancing..
[1587996143093] OpenBLAS WARNING - could not determine the L2 cache size on this system, assuming 256k
[1587996143255] OpenBLAS WARNING - could not determine the L2 cache size on this system, assuming 256k
[1587996148073] [ERROR] OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused
[1587996148073] Is the server running on host "localhost" (127.0.0.1) and accepting
[1587996148073] TCP/IP connections on port 5432?
[1587996148073] could not create socket: Address family not supported by protocol
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)nectption_noconnection
[1587996148289] [ERROR] OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused
[1587996148289] Is the server running on host "localhost" (127.0.0.1) and accepting
[1587996148289] TCP/IP connections on port 5432?
[1587996148289] could not create socket: Address family not supported by protocol
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)nectption_noconnection

关于如何解决这个问题有什么建议吗?

从 zappa 的尾部输出来看,您的函数似乎试图连接本地主机,但由于它是 lambda,我怀疑本地主机上是否存在 运行 postgres 实例。您应该更新 postgres 的连接设置(远程 postgres 实例的正确地址)。如果你使用的是sqlalchemy,你可以检查SQLALCHEMY_DATABASE_URI是否正确。