我正在使用弹性beantalk来部署Django应用程序。今天,它突然停止了工作,而没有在应用程序端进行任何重大更改(我已经更改了一些模板,仅此而已)。
在尝试部署应用程序10分钟后,部署超时,但没有任何反应。
我在日志中看到的或多或少有用的提示是:
[2020-02-20T15:00:20.437Z] INFO [19057] - [Application update .../postbuild_0_myproject/Command 01_migrate] : Activity execution failed, because: SystemCheckError: System check identified some issues:
ERRORS:
education.Author.photo: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow".
education.Course.cover_image: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow".
education.CourseCategory.icon_image: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow".
Using staging settings
App receivers connected
(ElasticBeanstalk::ExternalInvocationError)
[2020-02-20T15:00:20.437Z] INFO [19057] - [Application update .../postbuild_0_myproject/Command 01_migrate] : Activity failed.
[2020-02-20T15:00:20.437Z] INFO [19057] - [Application update .../postbuild_0_myproject] : Activity failed.
[2020-02-20T15:00:20.437Z] INFO [19057] - [Application update ...] : Activity failed.
[2020-02-20T15:00:20.507Z] INFO [19057] - [Application update app-9a24-200220_145942-stage-200220_145942@142/AppDeployStage0/EbExtensionPostBuild] : Activity failed.
[2020-02-20T15:00:20.507Z] INFO [19057] - [Application update app-9a24-200220_145942-stage-200220_145942@142/AppDeployStage0] : Activity failed.
[2020-02-20T15:00:20.508Z] INFO [19057] - [Application update app-9a24-200220_145942-stage-200220_145942@142] : Completed activity. Result:
Application update - Command CMD-AppDeploy failed
但是我在requirements.txt
中已经有了Pillow,上面的日志显示:
Requirement already satisfied: Pillow==6.2.1 in /opt/python/run/venv/lib64/python3.6/site-packages (from -r /opt/python/ondeck/app/requirements.txt (line 51))
如何解决并解决此问题?以及将来如何避免类似问题?我真的很害怕,同样的问题可能会在生产环境中随机出现。
以下是有关配置的更多信息:
这就是我在.ebextensions
中所拥有的:
01_packages.config
:
packages:
yum:
git: []
postgresql93-devel: []
db-migrate.config
container_commands:
01_migrate:
command: "django-admin.py migrate"
leader_only: true
option_settings:
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: myproject.settings
django.config
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: myproject/wsgi.py
wsgi_custom.config
files:
"/etc/httpd/conf.d/wsgihacks.conf":
mode: "000644"
owner: root
group: root
content: |
WSGIPassAuthorization On
答案 0 :(得分:0)
在使用ImageField
模型/表格时,这是Django的痛苦和已知问题。由于Python的动态导入系统,当我第一次遇到它时,它会突然出现并烦扰我。
我通常通过使用conda及其等效的virtualenv来解决此问题,以确保使用正确的解释器(带有我的软件包的解释器)。
如果您没有使用virtualenv或同等的虚拟机,请立即设置一个,如果您已经在使用一个,请检查您是否正在安装枕头pip3 install pillow
-pip3
在debian上很重要(以及其他许多正常的系统pip
仅适用于python2.x。
使用conda可以确保在生产中不会发生这种情况,但是我还将其添加到部署时要检查的事情清单中-检查枕头设置和工作的正确版本。
答案 1 :(得分:0)
我有两个具有相同问题的Elastic Beanstalk环境(一个Web层环境和一个工作环境)。
其中之一通过重启环境解决了问题。
另一个操作无法重新启动,并且每次执行任何操作都会超时。我设法通过配置>容量并将最小和最大实例数更改为0来解决此问题。我已应用更改,等待它们应用,然后返回最小和最大实例数的先前值。 / p>
解决了这个问题。
我仍然不知道是什么原因导致了这个问题,因此我希望收到一些评论。