【问题标题】:Add Subnets to ELBs and Subnets Value in Cloudformation Beanstalk script在 Cloudformation Beanstalk 脚本中将子网添加到 ELB 和子网值
【发布时间】:2014-05-07 02:45:21
【问题描述】:

我不是 JSON 专家,但我能够操纵 AWS Beanstalk VPC cloudformation 模板从 S3 提取 .WAR 文件并部署为新应用程序。我还操纵脚本创建了 2 个额外的子网,1 个用于公共,另一个用于私有,而不是仅创建 2 个子网的原始脚本。我对以下代码有疑问。我需要进行操作,以便 EC2 实例和 ELB 使用我在脚本中创建的其他子网。所以对于值 Subnets,我需要添加 PrivateSubnetPrivateSubnet2 ELBs 值也是如此。

"SampleEnvironment" : {
  "Type" : "AWS::ElasticBeanstalk::Environment",
  "Properties" : {
    "ApplicationName" : { "Ref" : "SampleApplication" },
    "EnvironmentName" : "Sandbox",
     "Description" :  "AWS Elastic Beanstalk Environment running Python Sample Application",
     "SolutionStackName" : "64bit Amazon Linux 2014.02 running Tomcat 7 Java 7",
     "OptionSettings" : [
       {"Namespace" : "aws:autoscaling:launchconfiguration", "OptionName" : "SSHSourceRestriction", "Value" : { "Fn::Join" : [ "", ["tcp,22,22,", { "Ref" : "BastionSecurityGroup" }]]}},
       {"Namespace" : "aws:autoscaling:launchconfiguration", "OptionName" : "SecurityGroups", "Value" : { "Ref" : "BeanstalkSecurityGroup" }},
       {"Namespace" : "aws:autoscaling:launchconfiguration", "OptionName" : "EC2KeyName", "Value" : { "Ref" : "InstanceKeyName" }},
       {"Namespace" : "aws:ec2:vpc", "OptionName" : "VPCId", "Value" : { "Ref" : "VPC" }},
       {"Namespace" : "aws:ec2:vpc", "OptionName" : "Subnets", "Value" : { "Ref" : "PrivateSubnet" }},
       {"Namespace" : "aws:ec2:vpc", "OptionName" : "ELBSubnets", "Value" : { "Ref" : "PublicSubnet" }}],
     "VersionLabel" : "Initial Version"
  }
}

},

任何帮助将不胜感激..

【问题讨论】:

  • 您在哪里创建额外的子网?在同一个 CloudFormation 模板中?请添加这些详细信息。
  • 是的,它们都在同一个脚本/模板中。

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


【解决方案1】:

在我试图找到同一问题的答案时遇到了这个问题

OptionName 值必须是单个逗号分隔的字符串,例如“a,b”

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html

与 RDSSubnetGroup 中的子网 ID 不同,您可以只列出子网 ID,例如“a”、“b”

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbsubnet-group.html

我使用内部连接函数将模板中的一些引用连接成一个字符串。

{
  "Namespace" : "aws:ec2:vpc", 
  "OptionName" : "Subnets", 
  "Value" : { "Fn::Join" : [ ",", [ { "Ref": "PrivateSubnetAvailabiltyZoneA" }, {"Ref": "PrivateSubnetAvailabiltyZoneB"} ] ] } 
},
{
  "Namespace" : "aws:ec2:vpc", 
  "OptionName" : "ELBSubnets", 
  "Value" : { "Fn::Join" : [ ",", [ { "Ref": "PublicSubnetAvailabiltyZoneA" }, {"Ref": "PublicSubnetAvailabiltyZoneB"} ] ] } 
},

【讨论】:

  • 感谢使用加入功能,它允许添加不同的网络。
猜你喜欢
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 2017-02-12
  • 2015-12-11
  • 1970-01-01
  • 2016-04-09
相关资源
最近更新 更多