我正在使用 zappa 将后端部署到 AWS Lambda。它运行得很好,直到我决定使用 PostgreSQL。我在设置中添加了这样的内容:
\nDATABASES = {\n 'default': {\n 'ENGINE': 'django.db.backends.postgresql',\n 'NAME': config('DATABASE_NAME'),\n 'USER': config('DATABASE_USER'),\n 'PASSWORD': config('DATABASE_PASSWORD'),\n 'HOST': config('DATABASE_HOST'),\n 'PORT': '5432'\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n我正在使用 AWS RDS。我安装了 psycopg2-binary 和 psycopg2 (版本 2.8.6),但问题仍然存在。python版本是3.8。
\n完整的错误日志:
\n [1621168086542] [ERROR] ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2._psycopg'\nTraceback (most recent call last):\n\xc2\xa0\xc2\xa0File "/var/task/handler.py", line 609, in lambda_handler\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0return LambdaHandler.lambda_handler(event, context)\n\xc2\xa0\xc2\xa0File "/var/task/handler.py", line 240, in lambda_handler\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0handler = cls()\n\xc2\xa0\xc2\xa0File "/var/task/handler.py", line 146, in __init__\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0wsgi_app_function = get_django_wsgi(self.settings.DJANGO_SETTINGS)\n\xc2\xa0\xc2\xa0File "/var/task/zappa/ext/django_zappa.py", line 20, in get_django_wsgi\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0return get_wsgi_application()\n\xc2\xa0\xc2\xa0File "/var/task/django/core/wsgi.py", …Run Code Online (Sandbox Code Playgroud) 我正在使用flask-cors来获取aws python aws lambda API.我用zappa部署它,它按预期工作.然而,cors并不适用于受https://github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints/blob/master/blueprints/python/api-gateway-authorizer-python.py启发的自定义授权程序
我使用try/except更改了授权者代码,并在异常时为OPTION方法生成策略,仍然Option方法返回401.
如果它让事情变得简单,我不介意解决方法.
谢谢
我尝试了一种建议的解决方案:即在API网关中为401响应设置标头,遗憾的是浏览器预检需要成功的状态代码.
从几天前开始,zappa deploy失败并出现以下错误(zappa 版本 0.50.0):
Traceback (most recent call last):
File "/root/repo/venv/lib/python3.6/site-packages/zappa/cli.py", line 2785, in handle
sys.exit(cli.handle())
File "/root/repo/venv/lib/python3.6/site-packages/zappa/cli.py", line 510, in handle
self.dispatch_command(self.command, stage)
File "/root/repo/venv/lib/python3.6/site-packages/zappa/cli.py", line 557, in dispatch_command
self.update(self.vargs['zip'], self.vargs['no_upload'])
File "/root/repo/venv/lib/python3.6/site-packages/zappa/cli.py", line 993, in update
endpoint_configuration=self.endpoint_configuration
File "/root/repo/venv/lib/python3.6/site-packages/zappa/core.py", line 2106, in create_stack_template
self.cf_template.add_description('Automatically generated with Zappa')
AttributeError: 'Template' object has no attribute 'add_description'
Run Code Online (Sandbox Code Playgroud) 我尝试通过 zappa 更新 lambda,我创建了 virtualenv 和活动 virtualenv 并安装库,但在运行 zappa 更新环境时,我遇到了这个问题:\n我该如何解决这个问题:(
\n zappa update qa\n(pip 18.1 (/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages), Requirement.parse('pip>=20.3'), {'pip-tools'})\nCalling update for stage qa..\nDownloading and installing dependencies..\nPackaging project as zip.\nUploading maximo-copy-customers-qa-1637639364.zip (6.0MiB)..\n100%|\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 6.32M/6.32M [00:09<00:00, 664kB/s]\nUpdating Lambda function code..\nUpdating Lambda function configuration..\nOh no! An error occurred! :(\n\n==============\n\nTraceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zappa/cli.py", line 2778, in handle\n sys.exit(cli.handle())\n File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zappa/cli.py", line 512, in handle\n self.dispatch_command(self.command, stage)\n File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zappa/cli.py", line 559, in dispatch_command\n self.update(self.vargs['zip'], self.vargs['no_upload'])\n File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zappa/cli.py", line 979, in update\n layers=self.layers\n File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zappa/core.py", …Run Code Online (Sandbox Code Playgroud) 我想使用Zappa在AWS Lambda上打包和部署一个简单的项目,但没有Zappa需求开销。
在这种简单情况下:
lambda_handler.pydef handle(event, context):
print('Hello World')
Run Code Online (Sandbox Code Playgroud)
我有一个deploy.sh脚本可以做到这一点:
#!/usr/bin/env bash
source venv/bin/activate
zappa package -o lambda.zip
aws lambda update-function-code --function-name lambda-example --zip-file fileb://./lambda.zip
Run Code Online (Sandbox Code Playgroud)
这项工作有效,但最终的lambda.zip会更大,然后需要:

我知道对于这种特定情况,不需要Zappa,但是在实际项目中,我使用了一些需要https://github.com/Miserlou/lambda-packages的库,而使用Zappa是安装它们的最简单方法。
如何在没有此开销的情况下生成python lambda软件包?
我突然开始在使用 zappa 的 Django + AWS lambda 设置中收到此错误。我在 bitbucket 管道上使用 ubuntu 18.04 映像来触发部署。
无法导入模块“handler”:没有名为“werkzeug”的模块
这是工作的罚款python3.6上zappa==0.42.2,直到25月- 2019年最后的部署。我认为这是由于应用程序上的一些代码更改导致了它(即使代码更改与 pip 模块无关 - 只是应用程序代码库上的一些更新)但即使恢复到以前的部署现在也会引发此错误。
我的 zappa 配置有一个 slim_handler: true
{
"staging": {
"project_name": "myapp",
"slim_handler": true,
"runtime": "python3.6",
"log_level": "WARNING",
"timeout_seconds": 300
}
}
Run Code Online (Sandbox Code Playgroud)
我在 Zappa 的 GitHub 问题中尝试了一些建议的解决方案,但没有成功。
我还从与 zappa 中的导入问题相关的问题中尝试了一些 SO 解决方案,但没有成功。对于 AWS lambda 中此 zappa 问题的调试或解决方法,我将非常感谢python3.6。
tl;博士
中设置的环境变量zappa_settings.json不作为环境变量上传到 AWS Lambda。他们去哪里?
ts;wm
我使用 Zappa 框架配置、部署和管理了一个 Lambda 函数。在zappa_settings.json我已经设置了一些环境变量。当我的应用程序成功运行时,这些变量肯定存在,但是,当我尝试在控制台或 AWS CLI 中检查 Lambda 函数环境变量时,我发现没有环境变量上传到 Lambda 函数本身。
摘自 zappa_settings.json:
{
"stage-dev": {
"app_function": "project.app",
"project_name": "my-project",
"runtime": "python3.7",
"s3_bucket": "my-project-zappa",
"slim_handler": true,
"environment_variables": {
"SECRET": "mysecretvalue"
}
}
}
Run Code Online (Sandbox Code Playgroud)
的输出aws lambda get-function-configuration --function-name my-project-stage-dev:
{
"Configuration": {
"FunctionName": "my-project-stage-dev",
"FunctionArn": "arn:aws:lambda:eu-west-1:000000000000:function:my-project-stage-dev",
"Runtime": "python3.7",
"Role": "arn:aws:iam::000000000000:role/lambda-execution-role",
"Handler": "handler.lambda_handler",
"CodeSize": 12333025,
"Description": "Zappa Deployment",
"Timeout": 30,
"MemorySize": 512,
"LastModified": "...",
"CodeSha256": "...",
"Version": "$LATEST",
"TracingConfig": { …Run Code Online (Sandbox Code Playgroud) 自00年代初以来我没有使用太多的JavaScript,我开始看到我当前的应用程序非常适合Node.js. 但作为一个红宝石开发者,coffeescript看起来更像是我的强项.但是我很担心,如果我没有花费任何时间使用裸机Node.js直接进入像Zappa这样的框架,那么我的理解中会有一些漏洞.这是一种有效的恐惧吗?
尝试使用 django-zappa 部署 Django 项目时,zappa tail输出中出现以下错误:
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: libpq.so.5: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我确保在需求文件中包含 psycopg2 模块:
psycopg2==2.8.3
Run Code Online (Sandbox Code Playgroud)
它安装在运行 zappa deploy 命令时处于活动状态的虚拟环境中。
我在 Linux 上运行并且在能够安装libpq-dev之前必须通过 apt安装,pip install psycopg2因为我之前收到一个错误,说系统上缺少 libpq(类似于上述错误,我猜)。
我怎样才能克服这个错误?
谢谢!
我尝试使用 部署 Flask 应用程序zappa==0.52.0,但收到如下错误;
错误:给出双重要求:setuptools(已在 setuptools==52.0.0.post20210125,name='setuptools')警告:您正在使用 pip 版本 20.2.3;但是,版本 21.1.3 可用。您应该考虑通过 '/Users/yoonshinkwark/Documents/JBR_reco_local_2/JBR_reco_API_2/dola-aldagram/aws-flask38/bin/python3.8 -m pip install --upgrade pip' 命令进行升级。不好了!发生错误!:(
回溯(最近一次调用最后):文件“/Users/yoonshinkwark/opt/anaconda3/lib/python3.8/site-packages/zappa/cli.py”,第3422行,句柄sys.exit(cli.handle() )文件“/Users/yoonshinkwark/opt/anaconda3/lib/python3.8/site-packages/zappa/cli.py”,第588行,句柄self.dispatch_command(self.command,stage)文件“/Users/yoonshinkwark /opt/anaconda3/lib/python3.8/site-packages/zappa/cli.py”,第 630 行,dispatch_command self.deploy(self.vargs["zip"], self.vargs["docker_image_uri"]) 文件“/Users/yoonshinkwark/opt/anaconda3/lib/python3.8/site-packages/zappa/cli.py”,第 852 行,在部署 self.create_package() 文件“/Users/yoonshinkwark/opt/anaconda3/lib/ python3.8/site-packages/zappa/cli.py”,第 2760 行,在 create_package venv=self.zappa.create_handler_venv() 中,文件“/Users/yoonshinkwark/opt/anaconda3/lib/python3.8/site-packages /zappa/core.py”,第 513 行,在 create_handler_venv 中引发环境错误(“Pypi 查找失败”) OSError:Pypi 查找失败
Python的版本是3.8.8。
zappa ×10
python ×7
aws-lambda ×6
django ×3
coffeescript ×1
flask ×1
flask-cors ×1
javascript ×1
node.js ×1
pip ×1
postgresql ×1
python-3.6 ×1
python-zappa ×1