1
我在zappa的幫助下部署aws lambda django應用程序。我的項目使用wsgi在本地工作良好,但是當我在aws lambda上部署時,會引發錯誤。zappa處理程序不導入django應用程序
任何幫助?
扎帕尾:
:`Calling tail for stage new2..
Warning! AWS Lambda may not be available in this AWS Region!
Warning! AWS API Gateway may not be available in this AWS Region!
[1496566100097] [INFO] 2017-06-04T08:48:20.97Z 8e08e84e-4902-11e7-9744-b7104a9a6ab2 Detected environment to be AWS Lambda. Using synchronous HTTP transport.
[1496566100160] No module named accounts: ImportError
Traceback (most recent call last):
File "/var/task/handler.py", line 484, in lambda_handler
return LambdaHandler.lambda_handler(event, context)
File "/var/task/handler.py", line 240, in lambda_handler
handler = cls()
File "/var/task/handler.py", line 143, in __init__
wsgi_app_function = get_django_wsgi(self.settings.DJANGO_SETTINGS)
File "/var/task/django_zappa_app.py", line 20, in get_django_wsgi
return get_wsgi_application()
File "/tmp/pip-build-dt_DVN/Django/django/core/wsgi.py", line 13, in get_wsgi_application
File "/tmp/pip-build-dt_DVN/Django/django/__init__.py", line 27, in setup
File "/tmp/pip-build-dt_DVN/Django/django/apps/registry.py", line 85, in populate
File "/tmp/pip-build-dt_DVN/Django/django/apps/config.py", line 94, in create
File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named accounts
[1496566112758] 'NoneType' object is not callable
` 我的項目樹:
.
├── apps
│ ├── accounts
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── filters.py
│ │ ├── __init__.py
│ │ ├── migrations
│ │ │ ├── 0001_initial.py
│ │ │ └── __init__.py
│ │ ├── models.py
│ │ ├── serializers.py
│ │ ├── tests.py
│ │ └── views.py
│ ├── helpers
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── __init__.py
│ │ ├── migrations
│ │ │ └── __init__.py
│ │ ├── models.py
│ │ ├── tests.py
│ │ └── views.py
│ ├── __init__.py
│
├── manage.py
├── my_project
│ ├── apiv1_urls.py
│ ├── __init__.py
│ ├── partner_logging.py
│ ├── settings
│ │ ├── base.py
│ │ ├── conf.ini
│ │
│ │ ├── dev.py
│ │ ├── __init__.py
│ │ └── prod.py
│ ├── urls.py
│ └── wsgi.py
├── requirements
│ ├── base.txt
│ └── dev.txt
└── zappa_settings.json
zappa_settings.json
{
"new2": {
"aws_region": "ap-south-1",
"django_settings": "my_project.settings",
"profile_name": "default",
"s3_bucket": "xyz"
}
}
wsgi.py
import os
import sys
from django.core.wsgi import get_wsgi_application
PROJECT_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
sys.path.insert(0, os.path.join(PROJECT_ROOT, 'apps'))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")
application = get_wsgi_application()
同樣的問題在這裏。如果你檢查你的zip文件,你可能會看到apps文件夾丟失。我仍在研究如何讓Zappa解決這個問題,到目前爲止'include'設置並沒有幫助。 –