我需要从boto3创建Elastic Beanstalk环境。
我猜这个API序列应该是:
从这个API我们得到“应用程序名称”:
在这里,我将json作为kwargs
传递到api
{
"ApplicationName": "APP-NAME",
"EnvironmentName": "ABC-Nodejs",
"CNAMEPrefix": "ABC-Neptune",
"SolutionStackName": "64bit Amazon Linux 2016.03 v2.1.1 running Node.js"
}
任何示例代码都会有所帮助 请注意:我有一个公共子网和一个私有子网,我们可以通过子网ID控制EC2和ELB创建的创建
答案 0 :(得分:0)
要使用您的环境设置相关资源,您必须使用Elastic Beanstalk选项设置。特别是对于VPC,您可以使用aws:ec2:vpc namespace,我已将这些设置的文档与此相关联。
代码示例如下:
{
ApplicationName: "APP-NAME",
EnvironmentName: "ABC-Nodejs",
CNAMEPrefix: "ABC-Neptune",
SolutionStackName: "64bit Amazon Linux 2016.03 v2.1.1 running Node.js"
OptionSettings=[
{
'Namespace': 'aws:ec2:vpc',
'OptionName': 'VPCId',
'Value': 'vpc-12345678'
},
{
'Namespace': 'aws:ec2:vpc',
'OptionName': 'ELBSubnets',
'Value': 'subnet-11111111,subnet-22222222'
},
],
}
答案 1 :(得分:0)
感谢nbalas, 我使用下面的代码来创建EB。
尽管已在“aws:elb:loadbalancer”和“aws:autoscaling:launchconfiguration”中提供已创建的安全组名称,但它正在创建新的安全组并将其附加到EC2实例和负载均衡器。所以现在新的和旧的安全组都附加到资源上。 我根本不想创建新的安全组,只想使用旧安全组。
kwargs={
"ApplicationName": "Test",
"EnvironmentName": "ABC-Nodejs",
"CNAMEPrefix": "ABC-ABC",
"SolutionStackName": "64bit Amazon Linux 2016.03 v2.1.1 running Node.js",
"OptionSettings": [
{
"Namespace": "aws:ec2:vpc",
"OptionName": "Subnets",
"Value": "subnet-*******0"
},
{
"Namespace": "aws:ec2:vpc",
"OptionName": "ELBSubnets",
"Value": "subnet-********1"
},
{
"Namespace": "aws:elb:loadbalancer",
"OptionName": "SecurityGroups",
"Value": "sg-*********2"
},
{
"Namespace": "aws:autoscaling:launchconfiguration",
"OptionName": "SecurityGroups",
"Value": "sg-**********3"
}
]
}
response = client.create_environment(**kwargs)