【发布时间】:2016-03-20 11:16:09
【问题描述】:
如何使用 API(而不是 GUI 或 CLI)创建带有 RDS 层的 EB 环境?
我可以使用 GUI 配置带有 RDS 层的 EB 环境。但目前,我正在使用 API 创建 EB 环境(通过 boto3,它似乎只是 REST API 的包装器)。我传递了与 GUI 创建的选项设置相同的选项设置(命名空间aws:rds:dbinstance),但这不会导致创建 RDS 实例或层。我的配置与 GUI 创建的配置之间的唯一区别是 GUI 创建的部分如下所示:
Extensions:
RDS.EBConsoleSnippet:
Order: null
SourceLocation: https://s3-us-west-2.amazonaws.com/elasticbeanstalk-env-resources-us-west-2/eb_snippets/rds/rds.json
我已将这个逐字添加到 .ebextensions 目录中的一个 yaml 文件中(该目录随后添加到我的部署包中),但仍然没有骰子。
以下是相关的 OptionSettings(生成的选项与 GUI 创建的选项相同):
{
'Namespace':'aws:ec2:vpc',
'OptionName': 'DBSubnets',
'Value': '<redacted>'
},
{
'Namespace':'aws:rds:dbinstance',
'OptionName': 'DBEngine',
'Value': 'mysql'
},
{
'Namespace':'aws:rds:dbinstance',
'OptionName': 'DBEngineVersion',
'Value': '5.6.23'
},
{
'Namespace':'aws:rds:dbinstance',
'OptionName': 'DBInstanceClass',
'Value': 'db.t2.micro'
},
{
'Namespace':'aws:rds:dbinstance',
'OptionName': 'DBUser',
'Value': os.environ['RDS_USER']
},
{
'Namespace':'aws:rds:dbinstance',
'OptionName': 'DBPassword',
'Value': os.environ['RDS_PASSWORD']
},
{
'Namespace':'aws:rds:dbinstance',
'OptionName': 'DBAllocatedStorage',
'Value': '5'
},
{
'Namespace':'aws:rds:dbinstance',
'OptionName': 'MultiAZDatabase',
'Value': 'false'
},
{
'Namespace':'aws:rds:dbinstance',
'OptionName': 'DBDeletionPolicy',
'Value': 'snapshot'
}
【问题讨论】:
-
您是否能够从 API 部署 RDS 实例?我遇到了同样的问题,正在努力用我的弹性 beantalk 实例部署 RDS 实例。关于我能找到的唯一解决方案是指定一个保存的模板。但我真的不想这样做。
-
不,我得到的最接近的是 Gustaf 的答案,但如果你通过 GUI,你不会得到 EBS 集成
标签: amazon-web-services amazon-cloudformation amazon-elastic-beanstalk