如何使用API(而不是GUI或CLI)創建具有RDS層的EB環境?使用API配置使用RDS的ElasticBeanstalk
我可以使用GUI配置具有RDS層的EB環境。但目前,我正在使用API創建EB環境(通過boto3,它似乎只是REST API的一個包裝)。我通過與GUI創建的相同的OptionSettings(命名空間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(導致選擇相同的圖形用戶界面中創建的):
{
'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實例?我遇到了同樣的問題,努力用我的彈性beanstalk實例部署RDS實例。關於我能找到的唯一解決方案是指定一個保存的模板。但我真的不想這樣做。 – Squeegy
不是我得到的最接近的就是古斯塔夫的答案,但是如果您通過GUI訪問,則不會獲得EBS集成 – natb1