我有一个CloudFormation模板,用于创建自定义VPC。 该模板创建以下资源-VPC,Internet网关,将IGW附加到VPC并创建公共子网。 我想向作为VPC一部分创建的路由表中添加路由(目标0.0.0.0/0,目标IGW)。
我已经通读了路线的cloudformation文档,路由表以了解如何执行此操作,但无济于事。
我可以使用Fn :: Ref函数来引用在模板中显式创建的资源或参数,但是如何引用VPC固有创建的资源?
任何有关如何重用现有路由表,NACL和安全组的见解都将受到赞赏。
谢谢
答案 0 :(得分:1)
答案 1 :(得分:0)
到目前为止,做得很好-您拥有Internet网关,路由表和公共子网。现在,您需要创建路由并将路由表附加到子网(如果尚未这样做)。如果您使用的是YAML,则可能看起来像这样:
InternetGateway:
Type: AWS::EC2::InternetGateway
Properties:
Tags:
- Key: Name
Value: !Ref EnvironmentName
InternetGatewayAttachment:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
InternetGatewayId: !Ref InternetGateway
VpcId: !Ref VPC
PublicSubnet1:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
AvailabilityZone: !Select [ 0, !GetAZs '' ]
CidrBlock: !Ref PublicSubnet1CIDR
MapPublicIpOnLaunch: true
Tags:
- Key: Name
Value: !Sub ${EnvironmentName} Public Subnet (AZ1)
PublicRouteTable:
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref VPC
Tags:
- Key: Name
Value: !Sub ${EnvironmentName} Public Routes
DefaultPublicRoute:
Type: AWS::EC2::Route
DependsOn: InternetGatewayAttachment
Properties:
RouteTableId: !Ref PublicRouteTable
DestinationCidrBlock: 0.0.0.0/0
GatewayId: !Ref InternetGateway
PublicSubnet1RouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
RouteTableId: !Ref PublicRouteTable
SubnetId: !Ref PublicSubnet1