本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Fn::Cidr
內在函數Fn::Cidr
返回CIDR地址塊的數組。傳回的CIDR區塊數目取決於count
參數。
宣告
參數
- ipBlock
-
用戶指定的CIDR地址塊被分割成較小的CIDR塊。
- count
-
CIDRs要產生的數目。有效範圍介於 1 與 256 之間。
- cidrBits
-
的子網路位元數目CIDR。例如,為此參數指定值「8" 將建立遮罩為「/24」的遮罩。CIDR
注意
子網路位元是倒轉的子網路遮罩。若要計算給定子網路位元所需的主機位元,請從 32 中減去子網路位元IPv4或 128 代表IPv6。
傳回值
CIDR位址區塊的陣列。
範例
基本使用
此範例會建立 6,內CIDRs含遮罩為「/24」的子網路遮罩「/27"。CIDR
JSON
{ "Fn::Cidr" : [ "192.168.0.0/24", "6", "5"] }
YAML
!Cidr [ "192.168.0.0/24", 6, 5 ]
建立IPv6啟用 VPC
此範例範本會建立IPv6已啟用的子網路。
JSON
{ "Resources": { "ExampleVpc": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": "10.0.0.0/16" } }, "IPv6CidrBlock": { "Type": "AWS::EC2::VPCCidrBlock", "Properties": { "AmazonProvidedIpv6CidrBlock": true, "VpcId": { "Ref": "ExampleVpc" } } }, "ExampleSubnet": { "Type": "AWS::EC2::Subnet", "DependsOn": "IPv6CidrBlock", "Properties": { "AssignIpv6AddressOnCreation": true, "CidrBlock": { "Fn::Select": [ 0, { "Fn::Cidr": [ { "Fn::GetAtt": [ "ExampleVpc", "CidrBlock" ] }, 1, 8 ] } ] }, "Ipv6CidrBlock": { "Fn::Select": [ 0, { "Fn::Cidr": [ { "Fn::Select": [ 0, { "Fn::GetAtt": [ "ExampleVpc", "Ipv6CidrBlocks" ] } ] }, 1, 64 ] } ] }, "VpcId": { "Ref": "ExampleVpc" } } } } }
YAML
Resources: ExampleVpc: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 IPv6CidrBlock: Type: AWS::EC2::VPCCidrBlock Properties: AmazonProvidedIpv6CidrBlock: true VpcId: !Ref ExampleVpc ExampleSubnet: Type: AWS::EC2::Subnet DependsOn: IPv6CidrBlock Properties: AssignIpv6AddressOnCreation: true CidrBlock: !Select - 0 - !Cidr - !GetAtt ExampleVpc.CidrBlock - 1 - 8 Ipv6CidrBlock: !Select - 0 - !Cidr - !Select - 0 - !GetAtt ExampleVpc.Ipv6CidrBlocks - 1 - 64 VpcId: !Ref ExampleVpc
支援的函數
您可以在 Fn::Cidr
函數中善用以下函數: