当尝试创建一个仅限 IPv6VPC 子网,使用 AWS CloudFormation,堆栈创建失败并显示以下消息:
创建失败
资源处理程序返回消息:“提供的请求无效:属性 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 ] ]
CloudFormation文档VPC 子网状态
... 如果 VPC 具有 IPv6 CIDR 块,您可以创建仅 IPv6 子网或 [...]。对于仅 IPv6 子网,请指定 IPv6 CIDR 块。...
这似乎表明,指定一个Ipv6CidrBlock
没有a CidrBlock
(ipv4) 足以使子网成为“仅 IPv6”子网。
我究竟做错了什么?
答案1
虽然这看起来是多余的,但似乎Ipv6Native: true
需要在子网属性:
IPv6 原生:表示这是否是仅 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