Il s’agit du nouveau Guide de référence des modèles CloudFormation . Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le guide de AWS CloudFormation l'utilisateur.
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'adresse CIDR. Le nombre de blocs d'adresse CIDR renvoyés dépend du paramètre count.
Déclaration
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
-
Bloc d'adresse CIDR spécifié par l'utilisateur à fractionner en plus petits blocs d'adresse CIDR.
- count
-
Nombre de blocs CIDR à générer. La plage valide est comprise entre 1 et 256.
- cidrBits
-
Nombre de bits de sous-réseau pour le bloc CIDR. Par exemple, spécifier la valeur « 8 » pour ce paramètre crée un bloc CIDR avec un masque « /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 nombre de bits de sous-réseau donné, soustrayez les bits de sous-réseau à 32 pour IPv4 ou à 128 pour IPv6.
Valeur renvoyée
Tableau de blocs d'adresse CIDR.
Exemple
Utilisation de base
Cet exemple crée 6 blocs CIDR avec un masque de sous-réseau « /27 » à l'intérieur d'un bloc CIDR avec 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'un VPC prenant en charge IPv6
Cet exemple de modèle crée un sous-réseau prenant en charge 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
Fonctions prises en charge
Vous pouvez utiliser les fonctions suivantes dans une fonction Fn::Cidr :