15

我正在尝试部署使用 Flask-Ask 构建的第一个 zappa 示例应用程序,看起来一切正常,但在 Deploying 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 版本:0.46.1
  • 操作系统和 Python 版本:Windows 7、Python 3.6

有人可以帮我吗?

4

11 回答 11

11

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

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

于 2018-06-20T12:54:13.690 回答
2

这个github问题似乎有同样的症状。降级zappa==0.45.1为我解决了它

于 2018-10-04T14:59:17.237 回答
2

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

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

于 2019-04-25T07:05:48.357 回答
2

如果以上所有方法都不起作用,您可以通过这种方式解决它。

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

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

application = Flask(__name__)

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

"app_function": "__init__.application",

部署和享受!

于 2020-02-01T06:03:16.147 回答
1

当我将应用程序的模块化路径作为main.py.

main.app我通过创建一个名为just nextmain.py并设置app_functionmain.appin的空文件来修复它zappa_settings.json

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

于 2018-11-21T20:33:31.630 回答
0

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

于 2018-07-14T14:32:10.650 回答
0

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

于 2019-01-15T17:30:27.987 回答
0

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

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

@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()
于 2020-02-05T17:45:08.250 回答
0

我遇到了同样的错误。检查你是否在你的 venv 中安装了 zappa。我已经全局安装并在本地 venv 中运行。当我安装 zappa 时,它运行良好。

于 2020-04-30T20:22:31.097 回答
0

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

尝试在虚拟环境中安装 zappa

pip install zappa
于 2020-05-25T00:47:37.183 回答
0

我正在运行一个烧瓶应用程序并忘记在我的应用程序中包含以下语句。

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

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

于 2021-07-03T12:46:31.090 回答