使用eb create
创建新环境后,我无法使用AWS控制台在我的环境中创建新的RDS数据库。它要求我从四个列表中选择至少两个可用区域。
无论我选择哪个,我都会收到错误:
DBSubnets:无效的选项值:'[“subnet-3dbb9564”,“subnet-b2edb199”]'(命名空间:'aws:ec2:vpc',OptionName:'DBSubnets'):指定VPC ID并确保所有子网存在。
使用EB CLI和以下命令eb create --database.engine postgres
,我得到超时。
Environment details for: iod-test
Application name: image_of_day2
Region: us-east-1
Deployed Version: 642b
Environment ID: e-u7q9j5ft2e
Platform: 64bit Amazon Linux 2015.03 v2.0.1 running Python 2.7
Tier: WebServer-Standard
CNAME: iotd-test2.elasticbeanstalk.com
Updated: 2015-09-21 19:29:37.262000+00:00
Printing Status:
INFO: createEnvironment is starting.
INFO: Using elasticbeanstalk-us-east-1-249541483051 as Amazon S3 storage bucket for environment data.
INFO: Created security group named: sg-7e948419
INFO: Environment health has transitioned to Pending. There are no instances.
INFO: Created security group named: awseb-e-u7q9j5ft2e-stack-AWSEBSecurityGroup-D0EHQ2UNQQWH
INFO: Created Auto Scaling launch configuration named: awseb-e-u7q9j5ft2e-stack-AWSEBAutoScalingLaunchConfiguration-FQZXDALSR4Z6
INFO: Created RDS database security group named: awseb-e-u7q9j5ft2e-stack-awsebrdsdbsecuritygroup-1xo7y4uzxrwgx
INFO: Creating RDS database named: aaaqgf0bktrtyg. This may take a few minutes.
ERROR: The operation timed out. The state of the environment is unknown.
我还有其他选择。这是AWS方面的问题吗?
答案 0 :(得分:7)
我使用此命令成功部署了Django应用程序
eb create --database.engine postgres。
应用上述命令后,您将收到如下错误
错误:操作超时。环境状况未知。
收到此错误后,您只需添加,提交和eb部署项目。 使用此方法,我成功将Django项目部署到AWS 我的 .ebextensions 容器命令将在下面添加 的 01_packages.config 强>
packages:
yum:
git: []
libffi-devel: []
python27-devel: []
postgresql93: []
postgresql93-devel: []
gcc-c++: []
首先添加上述配置并设置正确的wsgi路径并在settings.py中设置正确的RDS配置。然后添加,提交和部署。之后添加以下配置并部署
<强> 02_python.config 强>
container_commands:
01_migrate:
command: "source /opt/python/run/venv/bin/activate && python /opt/python/current/app/manage.py migrate --noinput"
leader_only: true
02_collectstatic:
command: "source /opt/python/run/venv/bin/activate && python /opt/python/current/app/manage.py collectstatic --noinput"
leader_only: true
99_runscript:
command: "source /opt/python/run/venv/bin/activate && python /opt/python/current/app/manage.py runscript init_db"
答案 1 :(得分:1)
关于无法从Elastic Beanstalk控制台创建数据库(您的第一个问题),似乎这是一个AWS问题。根据{{3}},这是一个已知的错误,他们希望能够修复。
这看起来像我们的控制台与某些RDS数据库实例类型的问题 我们将进行修复,但在此期间,请尝试使用其他RDS数据库实例类型,或使用EB CLI通过RDS DB创建环境。 以下是带有--database选项的EB Create命令的文档链接: this post
我尝试了多种实例类型,但无法通过控制台创建它。我最终创建了一个单独的RDS实例并连接到它。 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-create.html有关于连接现有数据库的有趣观点。
答案 2 :(得分:0)
似乎您可能尚未在AWS中创建DBS子网。
您是否为所有相关的可用区创建了DBSubnets?如下面链接的第3步所述?
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo-vpc-rds.html#AWSHowTo-vpc-rds-subnet
创建数据库子网组
在https://console.aws.amazon.com/rds/打开Amazon RDS控制台。
在导航窗格中,单击“子网组”。
单击“创建数据库子网组”。
单击“名称”,然后键入数据库子网组的名称。
单击“说明”,然后描述您的数据库子网组。
在VPC ID旁边,选择您创建的VPC的ID。
单击“添加子网”中的“添加所有子网”链接到此子网组部分。