【问题标题】:Can I create subnets in a particular Availability Zone using Cloudformation?我可以使用 Cloudformation 在特定可用区中创建子网吗?
【发布时间】:2019-04-16 15:21:01
【问题描述】:

我想在ap-south-1a 中创建一个子网,下一个子网应该在ap-south-1b 中。这可以做到吗?请帮帮我。

我尝试像通常在 CF 中那样创建子网。我还为可用区列表的下拉列表提供了参数。

Parameters:{
"Type":"AWS::EC2::AvailabilityZone::Name",
"Description": "AZ",
"Default": "-"

},

期望: https://images.app.goo.gl/WozfoNLVEeBhDkVs9

如果我能理解这件事的工作原理,我会非常高兴。

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    CloudFormation 宏是将动态资源添加到模板的绝佳方式。

    有关该主题的一般文档,请查看AWS Macros

    有关您可能尝试实现的目标的示例,请参阅

    Dynamically add subnets to VPC with CloudFormation Macros

    如果您刚刚开始 CloudFormation 冒险,请注意这一个有点高级的主题。 CFN 是需要驯服的野兽。

    【讨论】:

      【解决方案2】:

      是的,你可以。在 CloudFormation 中定义子网时,您只需指定每个子网的可用区。

      {
        "Type" : "AWS::EC2::Subnet",
        "Properties" : {
          "AvailabilityZone" : "ap-south-1a",
          "CidrBlock" : "10.0.1.0/24",
          "Tags" : [ "Name": "10.0.1.0" ],
          "VpcId" : "vpc-afd99ac9"
        }
      },
      {
        "Type" : "AWS::EC2::Subnet",
        "Properties" : {
          "AvailabilityZone" : "ap-south-1b",
          "CidrBlock" : "10.0.2.0/24",
          "Tags" : [ "Name": "10.0.2.0" ],
          "VpcId" : "vpc-afd99ac9"
        }
      }
      

      【讨论】:

      • 谢谢,但我希望这是动态的,我们在 AWS 控制台中创建子网的方式,可以那样做吗?我已经使用了上述分配可用区的方法。
      • @prakashjha 如果您希望它是动态的,您可以在您要创建的每个单独子网的 cloudformation 脚本中接受参数。
      • @prakashjha 如果您希望能够创建具有不同可用区的动态子网数量,您可以查看嵌套的 cloudformation 堆栈docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/…
      • 感谢您的指导,将对此进行检查。
      • @Marakai 啊,我不知道宏。自从我大量使用 CloudFormation 以来已经过去了大约一年,而且看起来那时还不存在(模板在 4 个月前发布)。我尝试完成类似 OP 不久前所说的事情,当时感觉就像是一种反模式。为了清楚起见,会赞成你的答案
      猜你喜欢
      • 1970-01-01
      • 2014-02-18
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 1970-01-01
      相关资源
      最近更新 更多