无法使用django启动AWS环境

时间:2013-12-19 19:12:32

标签: django amazon-web-services elastic-beanstalk

我在文档中逐行执行了这些步骤,但我一直收到此错误:

Your WSGIPath refers to a file that does not exist.

这是我的'.config'文件:(除了appname和键)

container_commands:
  01_syncdb:
    command: "python manage.py syncdb --noinput"
    leader_only: true

option_settings:
  - namespace: aws:elasticbeanstalk:container:python
    option_name: WSGIPath
    value: [myapp]/wsgi.py
  - option_name: DJANGO_SETTINGS_MODULE
    value: [myapp].settings
  - option_name: AWS_SECRET_KEY
    value: XXXX
  - option_name: AWS_ACCESS_KEY_ID
    value: XXXX

我搜索了一下,发现其他人有类似的问题,他们通过编辑'optionsettings解决了这个问题。[myapp]',我不想删除我需要的东西,但这就是我所拥有的:

[aws:autoscaling:asg]
Custom Availability Zones=
MaxSize=1
MinSize=1

[aws:autoscaling:launchconfiguration]
EC2KeyName=
InstanceType=t1.micro

[aws:autoscaling:updatepolicy:rollingupdate]
RollingUpdateEnabled=false

[aws:ec2:vpc]
Subnets=
VPCId=

[aws:elasticbeanstalk:application]
Application Healthcheck URL=

[aws:elasticbeanstalk:application:environment]
DJANGO_SETTINGS_MODULE=
PARAM1=
PARAM2=
PARAM3=
PARAM4=
PARAM5=

[aws:elasticbeanstalk:container:python]
NumProcesses=1
NumThreads=15
StaticFiles=/static/=static/
WSGIPath=application.py

[aws:elasticbeanstalk:container:python:staticfiles]
/static/=static/

[aws:elasticbeanstalk:hostmanager]
LogPublicationControl=false

[aws:elasticbeanstalk:monitoring]
Automatically Terminate Unhealthy Instances=true

[aws:elasticbeanstalk:sns:topics]
Notification Endpoint=
Notification Protocol=email

[aws:rds:dbinstance]
DBDeletionPolicy=Snapshot
DBEngine=mysql
DBInstanceClass=db.t1.micro
DBSnapshotIdentifier=
DBUser=ebroot

解决该问题的用户删除了某些行,然后“eb start”。我删除了原始用户说他们删除的相同行,但是当我开始使用它时,我又遇到了同样的问题。

如果有人可以帮助我,那就太棒了!

1 个答案:

答案 0 :(得分:1)

我昨天整天都遇到了这个问题,我正在使用ubuntu 13.10。 我也尝试删除.ebextensions下的选项文件无济于事。 我认为最终解决了这个问题 ~/mysite/requirements.txt 在我完成所有设置并完成eb initeb start之后,我仔细检查了这些值是什么,并注意到它们与本教程开头提到的http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Python_django.html不同。 当我在WSGIPath问题期间检查时,文件丢失了MySQL行,我只是添加了行:

MySQL-python==1.2.3

然后提交所有更改并且它有效。

如果这对您不起作用,则下面是.config文件设置和目录结构。

〜/ mysite / .ebextensions下的我的.config文件正是教程中的内容,减去了密钥和访问密钥,你需要用自己的密钥替换它们:

container_commands:
  01_syncdb:    
    command: "django-admin.py syncdb --noinput"
    leader_only: true

option_settings:
  - namespace: aws:elasticbeanstalk:container:python
    option_name: WSGIPath
    value: mysite/wsgi.py
  - option_name: DJANGO_SETTINGS_MODULE
    value: mysite.settings
  - option_name: AWS_SECRET_KEY
    value: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  - option_name: AWS_ACCESS_KEY_ID
    value: AKIAIOSFODNN7EXAMPLE

我的要求.txt:

Django==1.4.1
MySQL-python==1.2.3
argparse==1.2.1
wsgiref==0.1.2

我的树形结构。这开始于~/,所以如果我要做的话

  • cd ~/
  • tree -a mysite

你应该得到以下输出,包括.git下的一堆目录(我删除它们因为有很多):

mysite
├── .ebextensions
│   └── myapp.config
├── .elasticbeanstalk
│   ├── config
│   └── optionsettings.mysite-env
├── .git
├── .gitignore
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── settings.py
│   ├── settings.pyc
│   ├── urls.py
│   ├── wsgi.py
│   └── wsgi.pyc
└── requirements.txt