Zappa deployment error : GET request yields 502 response code

Zappa deployment error : GET request yields 502 response code

我正在尝试部署第一个用 Flask-Ask 构建的 zappa 示例应用程序,看起来一切正常,但在部署 API 语句后我收到以下错误:

错误:警告!已部署的 lambda 的状态检查失败。对“/”的 GET 请求 产生了 502 响应代码。

这是我正在执行的代码,对示例应用程序进行了细微更改

from flask import Flask
from flask_ask import Ask, question, statement, session
import pyodbc

app = Flask(name)
ask = Ask(app, '/')

@ask.intent('HelloIntent')
def hello(firstname):
speech_text = "Hello %s" % firstname
return statement(speech_text).simple_card('Hello', speech_text)

@ask.intent('ByeIntent')
def bye():
return statement("Ok, goodBye!")



if name == 'main':
app.run()

有人可以帮我解决这个问题吗?

尝试在您使用 zappa 的虚拟环境中使用 pip 安装所有依赖项。它适用于我的情况。

您也可以使用 zappa tail 命令查看您的日志。

我有同样的问题。花了几个小时后,我从 cloudwatch 日志中注意到 sec 证书的错误。由 运行 "pip install 'cryptography<2.2'"

解决

这个github issue好像有同样的症状。 降级到 zappa==0.45.1 为我解决了这个问题

当我将模块化路径提供给应用程序 main.py 时,我遇到了这个错误。

我通过在 main.py 旁边创建一个名为 main.app 的空文件并在 zappa_settings.json.[=16 中将 app_function 设置为 main.app 来修复它=]

完全不知道下面发生了什么,但这对我有用。

我遇到了同样的错误,与上面的 ScottieB 发生的情况相同,原因是我忘记为我的 .app 使用的一个包执行 pip 安装...在我本地执行 pip 安装之后项目环境然后做了 zappa update dev 错误消失了!并更新完成。

如果您使用的是 anaconda,那么请在您的项目目录和 Scripts/activate 中创建一个新的虚拟环境 "virtualenv lambda"。比使用 "conda deactivate" 停用 conda 环境并 pip 安装所有包 "pip install numpy pandas sklearn zappa flask".

PS:使用"slim_handle"=true也会出现这个错误,所以不要使用它。

如果以上方法都不行可以通过这种方式解决

  • 首先通过zappa tail [app name]检查应用程序日志解决所有错误,如果有的话

那么, 您必须在 zappa_settings.json 中提供 "app_function" 参数,该参数应指向您的入口函数。如果应用程序是 Flask __init__.application,则应像这样提供 app_function,因此 Flask 应用程序应定义为 application,如下所示,

application = Flask(__name__)

app.py 应该是 __init__.py 您必须添加 __init__.py 才能将您的项目文件夹识别为包。 所以 zappa_settings.json 有这样的参数,

"app_function": "__init__.application",

部署并享受!

我也遇到了同样的错误,经过多次网上搜索并尝试了很多很多建议,这实际上只是代码缩进的一个小问题! Zappa 配置或 pip 安装完全没有问题。

我注意到在您的代码示例中您根本没有缩进代码。我不知道这是复制粘贴到 Whosebug 中的方式,还是您无意中尝试部署它的方式。应该是

@ask.intent('HelloIntent')
def hello(firstname):
    speech_text = "Hello %s" % firstname
    return statement(speech_text).simple_card('Hello', speech_text)

@ask.intent('ByeIntent')
def bye():
    return statement("Ok, goodBye!")


if name == 'main':
    app.run()

我遇到了同样的错误。 检查你已经在你的 venv 中安装了 zappa。 我已经在全球范围内安装并在本地 venv 中安装了 运行。当我安装 zappa 时,它运行完美。

我遇到了同样的问题,我发现 zappa 是在我的系统上全局安装的,而不是在我正在使用的虚拟环境中。

尝试在虚拟环境中安装 zappa

pip install zappa

我是 运行 一个烧瓶应用程序,忘记在我的应用程序中包含以下声明。

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

添加此行后,它开始正常工作。