Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Fn::Cidr
Die intrinsische Funktion Fn::Cidr
gibt ein Array von CIDR-Adressblöcken zurück. Die Anzahl der zurückgegebenen CIDR-Blöcke ist abhängig vom Parameter count
.
Deklaration
YAML
Syntax für den vollständigen Funktionsnamen:
Fn::Cidr: -
ipBlock
-count
-cidrBits
Syntax für die Kurzform:
!Cidr [
ipBlock
,count
,cidrBits
]
Parameter
- ipBlock
-
Der benutzerdefinierte CIDR-Adressblock, der in kleinere CIDR-Blöcke aufgeteilt werden soll.
- count
-
Die Anzahl der zu generierenden CIDRs. Der gültige Bereich liegt zwischen 1 und 256.
- cidrBits
-
Die Anzahl der Subnetzbits für den CIDR. Wenn Sie beispielsweise einen Wert "8" für diesen Parameter angeben, wird ein CIDR mit der Maske "/24" erstellt.
Anmerkung
Subnetz-Bits ist der invertierte Wert der Subnetzmaske. Um die erforderlichen Hostbits für ein bestimmtes Subnetzbit zu berechnen, subtrahieren Sie die Subnetzbits von 32 für IPv4 oder 128 für IPv6.
Rückgabewert
Ein Array von CIDR-Adressblöcken.
Beispiel
Grundlegende Verwendung
In diesem Beispiel werden 6 CIDRs mit einer Subnetzmaske "/27" aus einem CIDR mit einer Maske von "/24" erstellt.
JSON
{ "Fn::Cidr" : [ "192.168.0.0/24", "6", "5"] }
YAML
!Cidr [ "192.168.0.0/24", 6, 5 ]
Erstellen eines IPv6-fähigen VPCs
Diese Beispiel-Vorlage erstellt ein IPv6-fähiges Subnetz.
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", "Ipv6CidrBlock" ]}]}, 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.Ipv6CidrBlock], 1, 64 ]] VpcId: !Ref ExampleVpc
Unterstützte Funktionen
Sie können die folgenden Funktionen in einer Fn::Cidr
-Funktion verwenden: