问题标签 [zappa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2141 浏览

python-3.x - 没有 API 网关的 Zappa Python 3.6 Lambda 函数

我正在尝试部署和测试我正在使用的 AWS Lambda 函数,并尝试了Zappanficano 的 Python-Lambda

Zappa 使用 @Task

当我使用 Zappa 的 @Task 装饰器触发异步函数时出现问题 - 由于某种原因,任务在 30 秒内超时(它是从通过 API Gateway 调用的 Zappa/Flask/Python AWS 函数调用的可能与它有关)并使用 @Task(remote_aws_lambda_function_name='function_name', remote_aws_region='ap-southeast-1') 导致输出冻结并且(未修改的)函数根本不起作用 - 我什至没有在 zappa tail 中获得调试输出!

Python-Lambda

虽然我可以使用 Python-Lambda 在本地调用和测试我的 lambda,但我的代码在部署时不起作用,而且我想念 Zappa 的高级功能,比如让我可以轻松查看日志并检查我的(无数) 调试语句。目前我必须登录 CloudWatch 并尝试查找日志条目(我不能!)并弄清楚如何修复代码中的任何错误。

独立扎帕

我尝试使用 Zappa 将代码直接部署为单独的 Lambda 函数,但我不知道如何使用 Zappa 部署非 WSGI 函数 - 一旦我部署,我调用 tail 来查看函数在没有任何输入的情况下执行并出现问题:P

日志如下:

这是一个类似的问题就像这一样,但两者都不能解决我的问题,因为我似乎没有做明显错误的事情。

如何让我的功能正常工作?

[编辑/更新]:@kevin-christopher-henry 问我是否尝试过使用@task_sns 作为调用方法,我有。不幸的是,我收到一条关于参数验证失败的错误消息,类似于在此问题上提交的错误报告中的错误消息。

(这是来自报告 - 我在关闭终端时丢失了消息:P)

0 投票
1 回答
390 浏览

amazon-web-services - x-api-key only secures some resources

My setup:

flask - awsLambda - zappa - api gateway

I do have a simple app running via above mentioned services. In my zappa_settings.json I have 'api_key_required' set to true.

Is it possible to set it up the way, that I will be using api key for every resource endpoint, but one (swagger documentation).

If, yes, where actually do I have to set it up. I don't have any api key setup in my flask app, so I assume it has to be done somewhere in aws.console - but I cannot find it.

EDIT: Just to add to correct answer (below). If you use flasgger it is not sufficient to add just one public endpoint pointing to /apidocs. To make documentation work without api key I had to open these enpoints:

  1. /apidocs and /apidocs/{proxy+}
  2. /apispec_1.json - may be different in your case
  3. /flasgger_static and /flasgger_static/{proxy+}
0 投票
1 回答
372 浏览

amazon-web-services - 在没有 Iam GetRole 授权的情况下使用 Serverless 或 Zappa

我正在使用 AWS Educate Starter 账户,但他们的用户账户政策不允许拥有 Iam GetRole。所以我在无服务器框架和 Zappa 中都有这种错误 -

有没有办法在没有这个授权的情况下完成工作。我知道我的访问密钥可以完全访问 AWS lamda、S3、Api Gateway 等。

0 投票
1 回答
2769 浏览

python-3.6 - 带有 pymssql 的“ImportError”/“未定义符号:PyFPE_jbuf”

我目前正在尝试将 Lambda 作为Zappa (Python3.6) 启动。在 AWS 端部署应用程序/配置所有内容后,我运行以下命令在本地环境中测试应用程序,

zappa invoke production script.main

并得到了这个错误,

/tmp/virtualenv_name/pymssql.cpython-36m-x86_64-linux-gnu.so:未定义符号:PyFPE_jbuf:ImportError

Traceback(最近一次调用最后一次):文件“/var/task/handler.py”,第 509 行,在 lambda_handler return LambdaHandler.lambda_handler(event, context)

文件“/var/task/handler.py”,第 237 行,在 lambda_handler handler = cls()

文件“/var/task/handler.py”,第 129 行,在init self.app_module = importlib.import_module(self.settings.APP_MODULE)

文件“/var/lang/lib/python3.6/importlib/init .py ”,第 126 行,在 >import_module return _bootstrap._gcd_import(name[level:], package, level)

_gcd_import 中的文件“冻结 importlib._bootstrap”,第 978 行

_find_and_load 中的文件“frozen importlib._bootstrap”,第 961 行

_find_and_load_unlocked 中的文件“frozen importlib._bootstrap”,第 950 行

_load_unlocked 中的文件“frozen importlib._bootstrap”,第 655 行

文件“冻结 importlib._bootstrap_external>”,第 678 行,在 exec_module

_call_with_frames_removed 中的文件“frozen importlib._bootstrap”,第 205 行

文件“/tmp/virtualenv_name/script.py”,第 3 行,在 > 模块中

导入 pymssql

ImportError:/tmp/virtualenv_name/pymssql.cpython-36m-x86_64-linux-gnu.so:未定义符号:PyFPE_jbuf

我读过的大多数问题PyFPE_jbuf似乎都涉及某个依赖项的多次安装,但似乎没有一个解决方案适用于此。到目前为止,我已经尝试过,

  1. 在我的虚拟环境中卸载并重新安装 pymssql,然后运行zappa update​​.
  2. 卸载并重新安装其他包含 pymssql(如 sqlalchemy)的包/库,然后运行zappa update​​.
  3. 取消部署项目,执行 1 和 2,然后重新部署。
  4. 在我的虚拟环境中卸载并重新安装 cython,然后运行zappa update​​.

    我对这个错误的理解正确吗?有什么故障排除建议吗?修复?

谢谢!

0 投票
1 回答
238 浏览

aws-lambda - 确定我们是否在 AWS Lambda + Zappa 下运行?

有没有办法确定我们是否在 AWS Lambda + Zappa 下运行?也许是一些环境变量?(如果我的 Python 应用程序在 Zappa 下启动,我想加载不同的设置。)

0 投票
1 回答
550 浏览

python - spaCy 在使用 zappa 部署到 AWS Lambda 时抛出 OSError

将 Python spaCy 应用程序部署到 AWS Lambda 时,我在部署中收到以下错误(见下文)。为什么使用 zappa 进行部署?zip 文件是 125MB 压缩的,因此从 aws-cli 直接上传在空间上失败,并且传输到 S3 也失败,因为未压缩的文件超过 250MB。

我的程序本身没有做任何多线程或多处理,它只使用 spaCy 2.0。我在 EC2 AWS Linux t2.medium 上构建和部署。从 spaCy AWS Lambda 函数获得往返答案的具体步骤是什么?

故障跟踪如下:

0 投票
2 回答
1029 浏览

python - Flask-ask 无法部署 zappa

我试图使用 Zappa 部署烧瓶询问 alexa 技能。我按照Alexa Tutorial: Deploy Flask-Ask Skills to AWS Lambda with Zappa上的说明进行操作, 但我得到了一个

当我运行时:zappa deploy dev

0 投票
2 回答
1257 浏览

python - Django Zappa 部署中的包装器错误

我正在尝试使用 Zappa 部署我的 Django 应用程序。我正在使用 python 3.6(虽然,我的 MacBook 上也安装了 python 2.7;从未使用过)。部署一切顺利,除了当我转到 url 时,我得到了这个错误。

"{'message': '处理此请求时发生未捕获的异常。您可以使用zappa tail命令进行调查。', 'traceback': ['Traceback (最近调用最后一次):\n', ' File \"/var /task/handler.py\", 第 452 行,在处理程序中\n response = Response.from_app(self.wsgi_app, environ)\n', ' File \"/var/task/werkzeug/wrappers.py\", 行903, 在 from_app\n return cls(*_run_wsgi_app(app, environ, buffered))\n', '文件\"/var/task/werkzeug/wrappers.py\", 第57行, 在_run_wsgi_app\n return _run_wsgi_app( *args)\n', ' File \"/var/task/werkzeug/test.py\", line 884, in run_wsgi_app\n app_rv = app(environ, start_response)\n', \"TypeError: 'NoneType'对象不可调用\n\"]}"

当我使用 tail 命令时,出现以下错误。

[1522350439826] 'NoneType' 对象不可调用

[1522350561286] [调试] 2018-03-29T19:09:21.282Z afbf4f1c-3384-11e8-8a03-a1095dcd99f5 Zappa 事件:{'time':'2018-03-29T19:09:19Z','detail-type' :'预定事件','来源':'aws.events','帐户':'753712688736','区域':'us-east-1','详细信息':{},'版本':'0' , '资源': ['arn:aws:events:us-east-1:753712688736:rule/r-suri-production-zappa-keep-warm-handler.keep_warm_callback'], 'id': 'f15a5fd5-aaf9- dfb7-1553-d14bb33d1b2b','kwargs':{}}

[1522350561286] [调试] 2018-03-29T19:09:21.282Z afbf4f1c-3384-11e8-8a03-a1095dcd99f5 Zappa 事件:{}

我尝试从头开始重置我的虚拟环境和 requirements.txt,但没有帮助。

这就是我的 Zappa 设置文件的样子

有谁知道这个错误是什么?我该如何解决?

0 投票
0 回答
674 浏览

amazon-web-services - 使用 AWS API Gateway Cognito 和 Zappa 的公共回调 URL

我有一个关于 Zappa、API Gateway、AWS Cognito 和回调 url 的问题。我已经使用 AWS Cognito 和 API Gateway 设置了 Zappa,以便保护我的所有后端路由(使用thisthis)。我从客户端到 API 后端发出的每个 xmlhttprequest 都在 HTTP 请求授权标头中附加了一个新刷新的 ID 令牌……而且一切正常。现在我需要我的应用程序从第三方 API 访问用户数据。第三方 API 需要回调 URL。比如说它是https://my-name.execute-api.us-west-1.amazonaws.com/dev/auth/third-party-app/callback. 现在,当第三方应用程序重定向到这个时,我知道这需要是 API 网关上的公共路由。Zappa 内部有没有办法使该回调路由公开而不是受保护?还是纯粹的 API 网关设置问题?Zappa 在 API 网关上创建了一个名为 ZappaAuthorizer 的东西,似乎适用于所有路由。我这样做是为了在客户同意后在 Fitbit Oauth2 过程中获取令牌(即此处授权授予流程的第 2 步)。如果有帮助,我将使用 orcas-git 中的 python-fitbit 和 Python Flask 以及我的后端蓝图。

0 投票
0 回答
576 浏览

python - 使用 zappa 在 Amazon lambda 中部署我的烧瓶脚本后出错

我创建了我的烧瓶应用程序来连接 mongodb 并根据 api 方法从集合中检索信息。

这是我的代码:

我跑了zappa init and zappa deploy dev,得到了网址。

但是,当我运行网址时,https://abcd.execute-api.us-east-2.amazonaws.com/dev/framework

我收到以下错误:

这是我的 zappa.json 文件:

请帮忙。提前致谢。扎帕尾巴也不起作用