Der*_*erp 9 amazon-web-services aws-cloudformation
我有以下网络 ELB 网络资源配置,以便通过单个弹性 ip 路由出站流量。
我收到以下错误:
“AWS::EC2::Route PublicRoute CREATE_FAILED:路由表 rtb-zzzeb 和网关 igw-xxx 属于不同的网络”
在我的以下配置的上下文中,这究竟意味着什么?我标记为“PublicRoute”的资源有问题吗?
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: "10.0.0.0/24"
Public1aSBN:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: "10.0.0.128/27"
AvailabilityZone: "eu-west-2a"
Public1cSBN:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: "10.0.0.160/27"
AvailabilityZone: "eu-west-2c"
Public1bSBN:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: "10.0.0.192/27"
AvailabilityZone: "eu-west-2b"
InternetGateway:
Type: "AWS::EC2::InternetGateway"
AttachGateway:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
VpcId: !Ref VPC
InternetGatewayId: !Ref InternetGateway
EIPNatGateway:
Type: AWS::EC2::EIP
Properties:
Domain: vpc
NAT:
DependsOn: EIPNatGateway
Type: AWS::EC2::NatGateway
Properties:
AllocationId:
Fn::GetAtt:
- EIPNatGateway
- AllocationId
SubnetId: !Ref Public1aSBN
RouteTablePublic:
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref VPC
Public1aSubnetRouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref Public1aSBN
RouteTableId: !Ref RouteTablePublic
Public1cSubnetRouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref Public1cSBN
RouteTableId: !Ref RouteTablePublic
Public1bSubnetRouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref Public1bSBN
RouteTableId: !Ref RouteTablePublic
PublicRoute:
Type: AWS::EC2::Route
DependsOn: InternetGateway
Properties:
RouteTableId: !Ref RouteTablePublic
DestinationCidrBlock: 0.0.0.0/0
GatewayId: !Ref InternetGateway
TargetSG:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: !Ref VPC
InboundRule:
Type: AWS::EC2::SecurityGroupIngress
DependsOn: TargetSG
Properties:
IpProtocol: -1
FromPort: '0'
ToPort: '65535'
CidrIp: "0.0.0.0/0"
GroupId:
Fn::GetAtt:
- TargetSG
- GroupId
Run Code Online (Sandbox Code Playgroud)
LLa*_*Lai 14
根据文档,
VPC 中的某些资源需要网关(Internet 或 VPN 网关)。如果您的 AWS CloudFormation 模板定义了 VPC、网关和网关附件,则需要网关的任何资源都依赖于网关附件。
这意味着您必须将您AttachGateway的添加到资源的DependsOn属性中PublicRoute:
PublicRoute:
Type: AWS::EC2::Route
DependsOn:
- InternetGateway
- AttachGateway
Properties:
RouteTableId: !Ref RouteTablePublic
DestinationCidrBlock: 0.0.0.0/0
GatewayId: !Ref InternetGateway
Run Code Online (Sandbox Code Playgroud)
这确保您的资源以正确的顺序构建,因此在网关连接到 vpc 之前不会创建您的路由
| 归档时间: |
|
| 查看次数: |
3247 次 |
| 最近记录: |