![尝试创建仅 IPv6 的 VPC 子网时,“属性 CidrBlock 或 Ipv4IpamPoolId 不能为空”](https://linux22.com/image/794337/%E5%B0%9D%E8%AF%95%E5%88%9B%E5%BB%BA%E4%BB%85%20IPv6%20%E7%9A%84%20VPC%20%E5%AD%90%E7%BD%91%E6%97%B6%EF%BC%8C%E2%80%9C%E5%B1%9E%E6%80%A7%20CidrBlock%20%E6%88%96%20Ipv4IpamPoolId%20%E4%B8%8D%E8%83%BD%E4%B8%BA%E7%A9%BA%E2%80%9D.png)
当尝试创建一个仅限 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