问题标签 [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.
python-3.x - 没有 API 网关的 Zappa Python 3.6 Lambda 函数
我正在尝试部署和测试我正在使用的 AWS Lambda 函数,并尝试了Zappa和nficano 的 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)
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:
- /apidocs and /apidocs/{proxy+}
- /apispec_1.json - may be different in your case
- /flasgger_static and /flasgger_static/{proxy+}
amazon-web-services - 在没有 Iam GetRole 授权的情况下使用 Serverless 或 Zappa
我正在使用 AWS Educate Starter 账户,但他们的用户账户政策不允许拥有 Iam GetRole。所以我在无服务器框架和 Zappa 中都有这种错误 -
有没有办法在没有这个授权的情况下完成工作。我知道我的访问密钥可以完全访问 AWS lamda、S3、Api Gateway 等。
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
似乎都涉及某个依赖项的多次安装,但似乎没有一个解决方案适用于此。到目前为止,我已经尝试过,
- 在我的虚拟环境中卸载并重新安装 pymssql,然后运行
zappa update
. - 卸载并重新安装其他包含 pymssql(如 sqlalchemy)的包/库,然后运行
zappa update
. - 取消部署项目,执行 1 和 2,然后重新部署。
在我的虚拟环境中卸载并重新安装 cython,然后运行
zappa update
.我对这个错误的理解正确吗?有什么故障排除建议吗?修复?
谢谢!
aws-lambda - 确定我们是否在 AWS Lambda + Zappa 下运行?
有没有办法确定我们是否在 AWS Lambda + Zappa 下运行?也许是一些环境变量?(如果我的 Python 应用程序在 Zappa 下启动,我想加载不同的设置。)
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 函数获得往返答案的具体步骤是什么?
故障跟踪如下:
python - Flask-ask 无法部署 zappa
我试图使用 Zappa 部署烧瓶询问 alexa 技能。我按照Alexa Tutorial: Deploy Flask-Ask Skills to AWS Lambda with Zappa上的说明进行操作, 但我得到了一个
当我运行时:zappa deploy dev
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 设置文件的样子
有谁知道这个错误是什么?我该如何解决?
amazon-web-services - 使用 AWS API Gateway Cognito 和 Zappa 的公共回调 URL
我有一个关于 Zappa、API Gateway、AWS Cognito 和回调 url 的问题。我已经使用 AWS Cognito 和 API Gateway 设置了 Zappa,以便保护我的所有后端路由(使用this 和this)。我从客户端到 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 以及我的后端蓝图。
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 文件:
请帮忙。提前致谢。扎帕尾巴也不起作用