【发布时间】:2014-09-18 13:15:59
【问题描述】:
我正在学习本教程: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Python_django.html
我正在进行第 6 步。我已经创建了我的 AWS Elastic Beanstalk Python 应用程序,现在我想将它链接到我的 Django 应用程序。
这是我的目录:
~/Documents/myapp
myapp manage.py requirements.txt .ebextensions .elasticbeanstalk .git .gitignore
在我的 .ebextensions 中是 myapp.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: myapp/wsgi.py
- option_name: DJANGO_SETTINGS_MODULE
value: myapp.settings
- option_name: AWS_SECRET_KEY
value: myUsersSecretKey
- option_name: AWS_ACCESS_KEY_ID
value: myUsersAcessKey
里面
~/Documents/myapp/myapp
是我的 settings.py、views.py 等。我在 settings.py 中将数据库设置为:
DATABASES = {
'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'],
}
}
正如教程中所说。然后我做了
git add .
git commit -m "eb configuration"
git aws.push
表示环境更新启动成功。等待状态就绪后,我转到 URL,它仍然是 AWS Elastic Beanstalk Python 成功页面,而不是我的 django 应用程序。知道为什么吗?
编辑:然后我尝试按照本教程进行操作: https://www.youtube.com/watch?v=YJoOnKiSYws(7:44暂停)
并将我的配置文件更改为:
container_commands:
01_syncdb:
command: "django-admin.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
- namespace: aws:autoscaling:launchconfiguration
option_name: EC2KeyName
value: myKeyPairName
现在当我在状态准备好后刷新页面时,它给出了一个内部服务器错误:
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the sever administrator, root@localhost and inform them of the time and error occured, and anything you might have done that may have acused the error.
More information about this error may be available in the server error log.
编辑 2:
在处理 AWS 弹性 beantalk 时,我的 wsgi.py 文件是否应该以某种方式显示?我保留了 wsgi.py 文件最初创建时的样子,因为教程也是如此。这是我的 wsgi.py:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ayflare.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
【问题讨论】:
-
你的意思是
git push aws而不是git aws.push? -
@AndrewJohnson 嗯不,在教程中,它说“git aws.push”
-
好的,看起来他们修改了 git 以添加该命令。只要它对你有用,那么它不是手头的问题。
-
@AndrewJohnson 我的 wsgi.py 文件应该看起来像某种方式吗?我保留了第一次创建文件时的正常状态,因为教程也是如此。
-
我的第一个想法是您的本地文件没有与 AWS 同步。由于这是使用豆茎,我不确定它是如何工作的或如何检查它。它是 git 的专有扩展,我对 AWS 的那部分不熟悉。
标签: python django amazon-web-services amazon-ec2