Fn::Cidr - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fn::Cidr

La fonction intrinsèque Fn::Cidr renvoie un tableau de blocs d'CIDRadresses. Le nombre de CIDR blocs renvoyés dépend du count paramètre.

Déclaration

JSON

{ "Fn::Cidr" : [ipBlock, count, cidrBits]}

YAML

Syntaxe pour le nom complet de la fonction :

Fn::Cidr: - ipBlock - count - cidrBits

Syntaxe pour la forme courte :

!Cidr [ ipBlock, count, cidrBits ]

Paramètres

ipBlock

Le bloc d'CIDRadresse spécifié par l'utilisateur à diviser en CIDR blocs plus petits.

count

Le nombre de CIDRs à générer. La plage valide est comprise entre 1 et 256.

cidrBits

Le nombre de bits de sous-réseau pour leCIDR. Par exemple, si vous spécifiez une valeur « 8 » pour ce paramètre, vous créerez un CIDR avec un masque de « /24 ».

Note

Les bits de sous-réseaux sont l'inverse du masque de sous-réseau. Pour calculer les bits d'hôte requis pour un sous-réseau donné, soustrayez les bits de sous-réseau de 32 pour IPv4 ou 128 pour. IPv6

Valeur renvoyée

Un tableau de blocs d'CIDRadresses.

Exemple

Utilisation de base

Cet exemple crée 6 CIDRs avec un masque de sous-réseau « /27 » à l'intérieur à partir CIDR d'un masque « /24 ».

JSON

{ "Fn::Cidr" : [ "192.168.0.0/24", "6", "5"] }

YAML

!Cidr [ "192.168.0.0/24", 6, 5 ]

Création d'IPv6un VPC

Cet exemple de modèle crée un sous-réseau IPv6 activé.

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

Fonctions prises en charge

Vous pouvez utiliser les fonctions suivantes dans une fonction Fn::Cidr :