我有一个创建自定义私有网络的CloudFormation模板。模板创建以下资源:私有网络、Internet网关、将IGW附加到私有网络、创建公网子网。我想要将路由(目标0.0.0.0/0、目标IGW)添加到作为VPC一部分创建的路由表中。
我已经阅读了有关路由和路由表的cloudformation文档,以找出如何做到这一点,但无济于事。
我可以使用Fn::Ref函数来引用显式创建为模板一部分的资源或参数,但如何引用由VPC本身创建的资源?
任何关于如何重用现有路由表、NACL和安全组的见解都是非常感谢的。
谢谢,
发布于 2018-11-26 10:49:45
到目前为止,你做得很好--你已经有了互联网网关、路由表和一个公共子网。现在,您需要创建路由并将路由表附加到子网(如果尚未执行此操作)。如果你使用的是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
https://stackoverflow.com/questions/53474044
复制相似问题