部署Django到AWS时出现“命令钩子失败”
我正在尝试在亚马逊的Elastic Beanstalk上部署一个Django应用。按照亚马逊的指南,我把数据库设置改成了RDS,并且写了一个配置文件。
这段代码在Django的settings.py文件里:
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.environ['RDS_DB_NAME'],
'USER': os.environ['RDS_USERNAME'],
'PASSWORD': os.environ['RDS_PASSWORD'],
'HOST': os.environ['RDS_HOSTNAME'],
'PORT': os.environ['RDS_PORT'],
}
这是我为Elastic Beanstalk写的配置文件:
container_commands:
01_syncdb:
command: "django-admin.py syncdb --noinput"
leader_only: true
02_createadmin:
command: "scripts/createadmin.py"
leader_only: true
option_settings:
- namespace: aws:elasticbeanstalk:container:python
option_name: WSGIPath
value: myapp/wsgi.py
- namespace: aws:elasticbeanstalk:container:python:staticfiles
option_name: /static/
value: static/
- option_name: DJANGO_SETTINGS_MODULE
value: myapp.settings
- option_name: AWS_SECRET_KEY
value: *my secret key*
- option_name: AWS_ACCESS_KEY_ID
value: *my access key*
我使用eb命令来部署。通过“eb init”和“eb start”,我可以成功创建应用和它的环境,然后用git aws.push把我最新的提交推送到服务器上。
但是,更新后我遇到了这个错误:
2014-07-03 13:41:27 UTC-0300 ERROR [Instance: i-4b1aef3e Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: Error occurred during build: Command hooks failed .
2014-07-03 13:41:25 UTC-0300 ERROR Script /opt/elasticbeanstalk/hooks/appdeploy/pre/01new.py failed with returncode 1
2014-07-03 13:41:25 UTC-0300 ERROR Application version failed to deploy.
我哪里做错了呢?
更新:
1 个回答
0
你应该检查一下你是不是在你的虚拟环境或者安装了Python的地方尝试使用:git aws.push
。另外,你也可以试着重启一下支持你ElasticBeanstalk应用的EC2机器。