首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CloudFormation AWS::EC2::路由

CloudFormation AWS::EC2::路由
EN

Stack Overflow用户
提问于 2019-06-08 15:03:54
回答 1查看 1.1K关注 0票数 1

我正在创建一个Cloudformation模板,我对一些概念感到困惑。首先,是否需要在RouteTable中每个需要定义的路由中拖放一个路由对象?

或者,我可以在同一条线路上添加更多的DestinationCidrBlock吗?

代码语言:javascript
复制
AWS::EC2::Route
PrivateRoute:
    Type: 'AWS::EC2::Route'
    Properties:
      RouteTableId: !Ref PrivateRouteTable
      InstanceId: !Ref EC2PublicServer
      DestinationCidrBlock: 0.0.0.0/0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-08 22:17:01

不能在DestinationCidrBlock属性中放置多个值。根据文献资料,它只接受一个字符串。

不幸的是,AWS::EC2::RouteTable资源本身不能包括路由列表。因此,您需要添加尽可能多的AWS::EC2::路由资源,就像您需要包含的流程一样。

可能的解决方案是使用CloudFormation变换宏从列表中生成多个路由资源。我不知道这是否可能。

更新:

我可以用来做

我编写了这个模板,它工作得很好,创建了指向同一个Internet网关的几条路由

代码语言:javascript
复制
AWSTemplateFormatVersion: "2010-09-09"
Transform: Explode

Parameters:
  VpcId:
    Type: AWS::EC2::VPC::Id
    Description: VPC ID of the VPC in which to create the route table

  InternetGateway:
    Type: String
    Description: Internet gateway id

Mappings:
  CidrMap:
    Destination1: 
      Cidr: 180.1.2.0/24
    Destination2:
      Cidr: 200.1.1.0/24

Resources:

  RouteTable:
    Type: AWS::EC2::RouteTable
    Properties: 
      VpcId: !Ref VpcId

  Route:
    Type: AWS::EC2::Route
    ExplodeMap: CidrMap
    Properties:
      DestinationCidrBlock: "!Explode Cidr"
      GatewayId: !Ref InternetGateway
      RouteTableId: !Ref RouteTable
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56507520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档