使用 API 使用 RDS 配置 ElasticBeanstalk
Posted
技术标签:
【中文标题】使用 API 使用 RDS 配置 ElasticBeanstalk【英文标题】:Config ElasticBeanstalk with RDS using API 【发布时间】: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 集成 【参考方案1】:您可以在创建环境时定义数据库,如下所示:
eb create --database --database.engine mysql --region eu-west-1
更新: 您还可以使用 .ebextensions 配置中的资源标签创建数据库,如下所示:
Resources:
AWSEBRDSDatabase:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: 5
DBInstanceClass: db.t2.micro
DBName: database_name
Engine: mysql
EngineVersion: 5.5
MasterUsername: root
MasterUserPassword: password
更多信息here 和here。
【讨论】:
谢谢,但问题表明我想使用 API 而不是 CLI以上是关于使用 API 使用 RDS 配置 ElasticBeanstalk的主要内容,如果未能解决你的问题,请参考以下文章
如何为 AWS RDS 凭证创建配置文件并将其导入我的 AWS Lambda API?
使用 Golang API 将表从 Amazon RDS 导出到 csv 文件