【问题标题】:How to create Elastic Beanstalk Environment from boto3如何从 boto3 创建 Elastic Beanstalk 环境
【发布时间】:2016-12-18 11:08:54
【问题描述】:

我需要从 boto3 创建 Elastic Beanstalk 环境。

我猜API序列应该是:

  • create_application()

从这个 API 我们得到“应用程序名称”:

  • create_environment(kwargs)

这里我将下面的 json 作为 kwargs 传递给 api


{
  "ApplicationName": "APP-NAME",
  "EnvironmentName": "ABC-Nodejs",
  "CNAMEPrefix": "ABC-Neptune",
  "SolutionStackName": "64bit Amazon Linux 2016.03 v2.1.1 running Node.js"
}

问题:

  1. 如何提及环境 EC2 应附加到哪个 VPC 和子网
  2. 应在哪个子网中创建其 ELB

任何示例代码都会有所帮助 请注意:我有一个公共子网和一个私有子网,我们可以通过子网ID控制EC2的创建和ELB的创建

【问题讨论】:

    标签: amazon-web-services amazon-elastic-beanstalk boto3


    【解决方案1】:

    要使用您的环境设置依赖资源,您必须使用 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'
            },
        ],
    }
    

    【讨论】:

      【解决方案2】:

      感谢 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)
      

      【讨论】:

        猜你喜欢
        • 2016-12-29
        • 2012-01-02
        • 2015-01-22
        • 2015-09-15
        • 2016-04-30
        • 2018-02-28
        • 2016-06-09
        • 2018-10-11
        • 1970-01-01
        相关资源
        最近更新 更多