标签: python-zappa

配置不正确:加载 psycopg2 模块时出错:没有名为“psycopg2._psycopg”的模块 zappa

我正在使用 zappa 将后端部署到 AWS Lambda。它运行得很好,直到我决定使用 PostgreSQL。我在设置中添加了这样的内容:

\n
DATABASES = {\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}\n
Run 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)

python django postgresql zappa python-zappa

10
推荐指数
1
解决办法
6632
查看次数

AttributeError: 模块“dateutil.tz”在 Zappa Deploy 上没有属性“UTC”

在尝试部署我的 AWS Lambda 函数时在我的 Stacktrace 上出现此错误

(python-dateutil 2.8.1 (/Users/supratik/.local/share/virtualenvs/api_sourcer-sM-JSZy3-/Users/supratik/.pyenv/shims/python/lib/python3.6/site-packages), Requirement.parse('python-dateutil<2.7.0'), {'zappa'})
Calling deploy for stage development..
Oh no! An error occurred! :(

==============

Traceback (most recent call last):
  File "/Users/supratik/.local/share/virtualenvs/api_sourcer-sM-JSZy3-/Users/supratik/.pyenv/shims/python/lib/python3.6/site-packages/zappa/cli.py", line 2778, in handle
    sys.exit(cli.handle())
  File "/Users/supratik/.local/share/virtualenvs/api_sourcer-sM-JSZy3-/Users/supratik/.pyenv/shims/python/lib/python3.6/site-packages/zappa/cli.py", line 512, in handle
    self.dispatch_command(self.command, stage)
  File "/Users/supratik/.local/share/virtualenvs/api_sourcer-sM-JSZy3-/Users/supratik/.pyenv/shims/python/lib/python3.6/site-packages/zappa/cli.py", line 549, in dispatch_command
    self.deploy(self.vargs['zip'])
  File "/Users/supratik/.local/share/virtualenvs/api_sourcer-sM-JSZy3-/Users/supratik/.pyenv/shims/python/lib/python3.6/site-packages/zappa/cli.py", line 709, in deploy
    self.zappa.create_iam_roles()
  File "/Users/supratik/.local/share/virtualenvs/api_sourcer-sM-JSZy3-/Users/supratik/.pyenv/shims/python/lib/python3.6/site-packages/zappa/core.py", line 2557, in create_iam_roles
    role, credentials_arn = self.get_credentials_arn()
  File "/Users/supratik/.local/share/virtualenvs/api_sourcer-sM-JSZy3-/Users/supratik/.pyenv/shims/python/lib/python3.6/site-packages/zappa/core.py", line 2536, in get_credentials_arn
    self.credentials_arn = role.arn
  File "/Users/supratik/.local/share/virtualenvs/api_sourcer-sM-JSZy3-/Users/supratik/.pyenv/shims/python/lib/python3.6/site-packages/boto3/resources/factory.py", line 339, …
Run Code Online (Sandbox Code Playgroud)

python-3.x zappa python-zappa

2
推荐指数
1
解决办法
2433
查看次数

使用 Zappa 的新分支/阶段

我目前在 AWS Lambda 上使用 Zappa/Flask (Py 3.7) 有一个 API

我的 zappa_Settings.json 文件如下所示:

{
    "beta": {
        "app_function": "application.application",
        "profile_name": "changed",
        "project_name": "changed",
        "runtime": "python3.7",
        "s3_bucket": "zappa-<obscured>"
    }

}
Run Code Online (Sandbox Code Playgroud)

然而,我们现在正在开发一组新的功能,并且感觉表明我们有一个单独的分支或阶段,例如“测试”,我们在部署这些功能并评估成熟度之前将其推入实时环境。

问题是,尽我所能,我无法从控制台创建新阶段:

zappa init 
Run Code Online (Sandbox Code Playgroud)

崩溃与

click.exceptions.ClickException:该项目已经有一个 zappa_settings.json 文件!

zappa init stage2
Run Code Online (Sandbox Code Playgroud)

产生

用法:zappa [-h] [-v] [--color {auto,never,always}] {认证,部署,init,包,模板,调用,管理,回滚,计划,状态,尾部,取消部署,取消计划,更新,shell} ... zappa:错误:无法识别的参数:stage2

zappa deploy stage2
Run Code Online (Sandbox Code Playgroud)

输出

(botocore 1.12.86 (/home/user/Code/Python/project/lib/python3.6/site-packages), Requirement.parse('botocore<1.11.0,>=1.10.82'), {'boto3'})
Calling deploy for stage stage2..
Error: Please define stage 'stage2' in your Zappa settings.
Run Code Online (Sandbox Code Playgroud)

现在,如果我手动为阶段创建条目,则需要有一个 s3 存储桶用于部署。重复使用与第一个实例相同的实例是否安全?我在这里要做什么来部署新阶段?

python-3.x zappa aws-lambda python-zappa

2
推荐指数
1
解决办法
922
查看次数