尝试创建仅限 IPv6 的 VPC 子网时出现“属性 CidrBlock 或 Ipv4IpamPoolId 不能为空”

问题描述 投票:0回答:1

使用 AWS CloudFormation 创建仅限 IPv6 VPC 子网时,堆栈创建失败并显示以下消息:

创建_失败

资源处理程序返回消息:“提供的请求无效:属性 CidrBlock 或 Ipv4IpamPoolId 不能为空。”

以下是 CloudFormation 模板的相关部分:

  SubnetIpv6Only:
    Type: 'AWS::EC2::Subnet'
    Properties:
      VpcId: !Ref CustomVPC
      AvailabilityZone: !Select [0, !GetAZs '']
      # ipv6-only
      AssignIpv6AddressOnCreation: true
      Ipv6CidrBlock: !Select [ 0, Fn::Cidr: [ !Select [ 0, !GetAtt CustomVPC.Ipv6CidrBlocks ], 4, 64 ] ]

VPC 子网状态的 CloudFormation docs

...如果 VPC 具有 IPv6 CIDR 块,您可以创建纯 IPv6 子网或 [...]。对于仅限 IPv6 的子网,请指定 IPv6 CIDR 块。 ...

这似乎表明指定

Ipv6CidrBlock

 
without CidrBlock
 (ipv4) 应足以使子网成为“仅限 IPv6”。

我做错了什么?

amazon-ec2 aws-cloudformation amazon-vpc ipv6
1个回答
0
投票
虽然看起来有些多余,但

Ipv6Native: true

需要在
子网属性中明确指定:

Ipv6Native:指示这是否是仅 IPv6 的子网。 ...

所以模板看起来像:

SubnetIpv6Only: Type: 'AWS::EC2::Subnet' Properties: VpcId: !Ref CustomVPC AvailabilityZone: !Select [0, !GetAZs ''] # ipv6-only AssignIpv6AddressOnCreation: true Ipv6CidrBlock: !Select [ 0, Fn::Cidr: [ !Select [ 0, !GetAtt CustomVPC.Ipv6CidrBlocks ], 4, 64 ] ] Ipv6Native: true # <-- new
    
© www.soinside.com 2019 - 2024. All rights reserved.