

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.

# Référence TOSCA pour TNB AWS
<a name="tosca-reference"></a>

La spécification de topologie et d'orchestration pour les applications cloud (TOSCA) est une syntaxe déclarative CSPs utilisée pour décrire une topologie de services Web basés sur le cloud, leurs composants, leurs relations et les processus qui les gèrent. CSPs décrire les points de connexion, les liens logiques entre les points de connexion et les politiques telles que l'affinité et la sécurité dans un modèle TOSCA. CSPs puis téléchargez le modèle sur AWS TNB qui synthétise les ressources nécessaires pour établir un réseau 5G fonctionnel dans les zones de AWS disponibilité.

**Topics**
+ [

# Modèle VNFD
](vnfd-template.md)
+ [

# Modèle de descripteur de service réseau
](nsd-template.md)
+ [

# Nœuds communs
](common-nodes.md)

# Modèle VNFD
<a name="vnfd-template"></a>

Définit un modèle de descripteur de fonction réseau virtuel (VNFD).

## Syntaxe
<a name="vnfd-syntax"></a>

```
tosca_definitions_version: tnb_simple_yaml_1_0

topology_template:

  inputs:
    SampleInputParameter:
      type: String
      description: "Sample parameter description"
      default: "DefaultSampleValue"

  node\$1templates:
    SampleNode1: tosca.nodes.AWS.VNF
```

## Modèle de topologie
<a name="vnfd-topology-template"></a>

 `node_templates`    
Les nœuds TOSCA AWS . Les nœuds possibles sont les suivants :  
+ [AWS.VNF](node-vnf.md)
+ [AWS.Artefacts. Casque](node-helm.md)

# AWS.VNF
<a name="node-vnf"></a>

Définit un AWS nœud de fonction réseau virtuelle (VNF).

## Syntaxe
<a name="vnf-syntax"></a>

```
tosca.nodes.AWS.VNF:
  properties:
    descriptor\$1id: String
    descriptor\$1version: String
    descriptor\$1name: String
    provider: String
  requirements:
    helm: String
```

## Propriétés
<a name="vnf-properties"></a>

 `descriptor_id`    
L'UUID du descripteur.  
Obligatoire : oui  
Type : String  
Modèle : `[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}`

 `descriptor_version`    
La version du VNFD.  
Obligatoire : oui  
Type : String  
Modèle : `^[0-9]{1,5}\\.[0-9]{1,5}\\.[0-9]{1,5}.*`

 `descriptor_name`    
Le nom du descripteur.  
Obligatoire : oui  
Type : String

 `provider`    
L'auteur du VNFD.  
Obligatoire : oui  
Type : String

## Prérequis
<a name="vnf-requirements"></a>

 `helm`    
Le répertoire Helm définissant les artefacts du conteneur. Il s'agit d'une référence à [AWS.Artifacts.Helm.](node-helm.md)   
Obligatoire : oui  
Type : String

## exemple
<a name="vnf-example"></a>

```
SampleVNF:
  type: tosca.nodes.AWS.VNF
  properties:
    descriptor_id: "6a792e0c-be2a-45fa-989e-5f89d94ca898"
    descriptor_version: "1.0.0"
    descriptor_name: "Test VNF Template"
    provider: "Operator"
  requirements:
    helm: SampleHelm
```

# AWS.Artifacts.Helm
<a name="node-helm"></a>

Définit un nœud AWS Helm.

## Syntaxe
<a name="node-helm-syntax"></a>

```
tosca.nodes.AWS.Artifacts.Helm:
  properties:
    implementation: String
```

## Propriétés
<a name="node-helm-properties"></a>

 `implementation`    
Le répertoire local qui contient le graphique Helm dans le package CSAR.  
Obligatoire : oui  
Type : String

## exemple
<a name="node-helm-example"></a>

```
SampleHelm:
  type: tosca.nodes.AWS.Artifacts.Helm
  properties:
    implementation: "./vnf-helm"
```

# Modèle de descripteur de service réseau
<a name="nsd-template"></a>

Définit un modèle de descripteur de service réseau (NSD).

## Syntaxe
<a name="nsd-template-syntax"></a>

```
tosca_definitions_version: tnb_simple_yaml_1_0

vnfds:
  - descriptor\$1id: String
    namespace: String

topology_template:

  inputs:
    SampleInputParameter:
      type: String
      description: "Sample parameter description"
      default: "DefaultSampleValue"

  node\$1templates:
    SampleNode1: tosca.nodes.AWS.NS
```

## Utilisation de paramètres définis
<a name="using-defined-parameters"></a>

Lorsque vous souhaitez transmettre dynamiquement un paramètre, tel que le bloc CIDR pour le nœud VPC, vous pouvez utiliser `{ get_input: input-parameter-name }` la syntaxe et définir les paramètres dans le modèle NSD. Réutilisez ensuite le paramètre dans le même modèle NSD.

L'exemple suivant montre comment définir et utiliser des paramètres :

```
tosca_definitions_version: tnb_simple_yaml_1_0

topology_template:

  inputs:
    cidr_block:
      type: String
      description: "CIDR Block for VPC"
      default: "10.0.0.0/24"

  node_templates:
    ExampleSingleClusterNS:
      type: tosca.nodes.AWS.NS
      properties:
        descriptor_id: "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
         .....

    ExampleVPC:
      type: tosca.nodes.AWS.Networking.VPC
      properties:
        cidr_block: { get_input: cidr_block }
```

## Importation VNFD
<a name="vnfd-import"></a>

 `descriptor_id`    
L'UUID du descripteur.  
Obligatoire : oui  
Type : String  
Modèle : `[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}`

 `namespace`    
Le nom unique.  
Obligatoire : oui  
Type : String

## Modèle de topologie
<a name="nsd-topology-template"></a>

 `node_templates`    
Les AWS nœuds TOSCA possibles sont les suivants :  
+ [AWS N.S.](node-ns.md)
+ [AWS.Computer.EKS](node-eks.md)
+ [AWS.Computer.EKS. AuthRole](node-eks-authrole.md)
+ [AWS.Calculer. EKSManagedNœud](node-eks-managed-node.md)
+ [AWS.Calculer. EKSSelfManagedNode](node-eks-self-managed.md)
+ [AWS.Calculer. PlacementGroup](node-compute-placement-group.md)
+ [AWS.Calculer. UserData](node-compute-user-data.md)
+ [AWS.Réseautage. SecurityGroup](node-networking-security-group.md)
+ [AWS.Réseautage. SecurityGroupEgressRule](node-networking-security-group-egress-rule.md)
+ [AWS.Réseautage. SecurityGroupIngressRule](node-networking-security-group-ingress-rule.md)
+ [AWS.Ressource.Importer](node-resource-import.md)
+ [AWS.Networking.ENI](node-eni.md)
+ [AWS.HookExecution](node-hook-execution.md)
+ [AWS.Réseautage. InternetGateway](node-internet-gateway.md)
+ [AWS.Réseautage. RouteTable](node-route-table.md)
+ [AWS.Réseau.Sous-réseau](node-subnet.md)
+ [AWS.Déploiement. VNFDeployment](node-vnf-deployment.md)
+ [AWS.Réseau.VPC](node-vpc.md)
+ [AWS.Réseautage. NATGateway](node-nat-gateway.md)
+ [AWS.Mise en réseau.Route](node-route.md)

# AWS N.S.
<a name="node-ns"></a>

Définit un nœud de service AWS réseau (NS).

## Syntaxe
<a name="node-ns-syntax"></a>

```
tosca.nodes.AWS.NS:
  properties:
    descriptor\$1id: String
    descriptor\$1version: String
    descriptor\$1name: String
```

## Propriétés
<a name="node-ns-properties"></a>

 `descriptor_id`    
L'UUID du descripteur.  
Obligatoire : oui  
Type : String  
Modèle : `[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}`

 `descriptor_version`    
Version du NSD.  
Obligatoire : oui  
Type : String  
Modèle : `^[0-9]{1,5}\\.[0-9]{1,5}\\.[0-9]{1,5}.*`

 `descriptor_name`    
Nom du descripteur.  
Obligatoire : oui  
Type : String

## exemple
<a name="node-ns-example"></a>

```
SampleNS:
  type: tosca.nodes.AWS.NS
  properties:
    descriptor_id: "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    descriptor_version: "1.0.0"
    descriptor_name: "Test NS Template"
```

# AWS.Computer.EKS
<a name="node-eks"></a>

Indiquez le nom du cluster, la version de Kubernetes souhaitée et un rôle permettant au plan de contrôle Kubernetes de gérer les ressources requises pour votre. AWS NFs Les plugins CNI (Multus Container Network Interface) sont activés. Vous pouvez associer plusieurs interfaces réseau et appliquer une configuration réseau avancée aux fonctions réseau basées sur Kubernetes. Vous spécifiez également l'accès au point de terminaison du cluster et les sous-réseaux de votre cluster.

## Syntaxe
<a name="node-eks-syntax"></a>

```
tosca.nodes.AWS.Compute.EKS:
  capabilities:
    multus:
      properties:
        enabled: Boolean
        multus\$1role: String
    ebs\$1csi:
      properties:
        enabled: Boolean
        version: String      
  properties:
    version: String
    access: String
    cluster\$1role: String
    tags: List
    ip\$1family: String        
  requirements:
    subnets: List
```

## Fonctionnalités
<a name="node-eks-capabilities"></a><a name="node_eks_multus"></a>`multus`

Facultatif. Propriétés qui définissent l'utilisation de l'interface réseau de conteneurs (CNI) Multus. 

Si vous incluez`multus`, spécifiez les `multus_role` propriétés `enabled` et.

 `enabled`    
Indique si la fonctionnalité Multus par défaut est activée.  
Obligatoire : oui  
Type : booléen

 `multus_role`    
Le rôle de la gestion de l'interface réseau Multus.  
Obligatoire : oui  
Type : String<a name="node_eks_ebs_csi"></a>`ebs_csi`

Propriétés qui définissent le pilote Amazon EBS Container Storage Interface (CSI) installé dans le cluster Amazon EKS.

Activez ce plugin pour utiliser les nœuds autogérés Amazon EKS sur AWS Outposts les Zones AWS Locales ou Régions AWS. Pour plus d'informations, consultez le [pilote Amazon Elastic Block Store CSI](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) dans le **guide de l'utilisateur Amazon EKS**.

 `enabled`    
Indique si le pilote Amazon EBS CSI par défaut est installé.  
Obligatoire : non  
Type : booléen

 `version`    
Version du module complémentaire de pilote Amazon EBS CSI. La version doit correspondre à l'une des versions renvoyées par l'*DescribeAddonVersions*action. Pour plus d'informations, consultez [DescribeAddonVersions](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html)le manuel *Amazon EKS API Reference*   
Obligatoire : non  
Type : String

## Propriétés
<a name="node-eks-properties"></a>

 `version`    
Version de Kubernetes pour le cluster. AWS Telco Network Builder prend en charge les versions 1.25 à 1.32 de Kubernetes.  
Obligatoire : oui  
Type : String  
Valeurs possibles : 1,25 \$1 1,26 \$1 1,27 \$1 1,28 \$1 1,29 \$1 1,30 \$1 1,31 \$1 1,32

 `access`    
L'accès au point de terminaison du cluster.  
Obligatoire : oui  
Type : String  
Valeurs possibles : `PRIVATE` \$1 `PUBLIC` \$1 `ALL`

 `cluster_role`    
Le rôle de la gestion des clusters.  
Obligatoire : oui  
Type : String

 `tags`    
Balises à associer à la ressource.  
Obligatoire : non  
Type : liste

 `ip_family`    
Indique la famille d'adresses IP pour les adresses de service et de pod dans le cluster.  
Valeur autorisée :`IPv4`, `IPv6`  
Valeur par défaut : `IPv4`  
Obligatoire : non  
Type : String

## Prérequis
<a name="node-eks-requirements"></a>

 `subnets`    
Un nœud [AWS.Networking.Subnet.](node-subnet.md)  
Obligatoire : oui  
Type : liste

## exemple
<a name="node-eks-example"></a>

```
SampleEKS:
  type: tosca.nodes.AWS.Compute.EKS
  properties:
    version: "1.26"
    access: "ALL"
    cluster_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleRole"
    ip_family: "IPv6"
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing" 
  capabilities:
    multus:
      properties:
        enabled: true
        multus_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/MultusRole"
    ebs_csi:
      properties:
        enabled: true
        version: "v1.16.0-eksbuild.1"        
  requirements:
    subnets:
    - SampleSubnet01
    - SampleSubnet02
```

# AWS.Computer.EKS. AuthRole
<a name="node-eks-authrole"></a>

An vous AuthRole permet d'ajouter des rôles IAM au cluster Amazon EKS `aws-auth` `ConfigMap` afin que les utilisateurs puissent accéder au cluster Amazon EKS à l'aide d'un rôle IAM.

## Syntaxe
<a name="node-eks-authrole-syntax"></a>

```
tosca.nodes.AWS.Compute.EKS.AuthRole:
  properties:
    role\$1mappings: List
      arn: String
      groups: List  
  requirements:
    clusters: List
```

## Propriétés
<a name="node-eks-authrole-properties"></a>

 `role_mappings`    
Liste des mappages qui définissent les rôles IAM qui doivent être ajoutés au cluster Amazon EKS. `aws-auth` `ConfigMap`    
 `arn`    
ARN du rôle IAM.  
Obligatoire : oui  
Type : String  
 `groups`    
Groupes Kubernetes à attribuer au rôle défini dans. `arn`  
Obligatoire : non  
Type : liste

## Prérequis
<a name="node-eks-authrole-requirements"></a>

 `clusters`    
Un nœud [AWS.Compute.EKS](node-eks.md).  
Obligatoire : oui  
Type : liste

## exemple
<a name="node-eks-authrole-example"></a>

```
EKSAuthMapRoles:
    type: tosca.nodes.AWS.Compute.EKS.AuthRole
    properties:
        role_mappings:
        - arn: arn:aws:iam::${AWS::TNB::AccountId}:role/TNBHookRole1
          groups:
          - system:nodes
          - system:bootstrappers
        - arn: arn:aws:iam::${AWS::TNB::AccountId}:role/TNBHookRole2
          groups:
          - system:nodes
          - system:bootstrappers
    requirements:
         clusters: 
         - Free5GCEKS1
         - Free5GCEKS2
```

# AWS.Calculer. EKSManagedNœud
<a name="node-eks-managed-node"></a>

AWS TNB prend en charge les groupes de nœuds gérés par EKS pour automatiser le provisionnement et la gestion du cycle de vie des nœuds ( EC2 instances Amazon) pour les clusters Amazon EKS Kubernetes. Pour créer un groupe de nœuds EKS, procédez comme suit :
+ Choisissez les Amazon Machine Images (AMI) pour les nœuds de travail de votre cluster en fournissant soit l'ID de l'AMI, soit le type d'AMI.
+ Fournissez une paire de EC2 clés Amazon pour l'accès SSH et les propriétés de dimensionnement de votre groupe de nœuds.
+ Assurez-vous que votre groupe de nœuds est associé à un cluster Amazon EKS.
+ Fournissez les sous-réseaux pour les nœuds de travail.
+ Vous pouvez éventuellement associer des groupes de sécurité, des étiquettes de nœuds et un groupe de placement à votre groupe de nœuds.

## Syntaxe
<a name="node-eks-managed-node-syntax"></a>

```
tosca.nodes.AWS.Compute.EKSManagedNode:
  capabilities:
    compute:
      properties:
        ami\$1type: String
        ami\$1id: String
        instance\$1types: List
        key\$1pair: String
        root\$1volume\$1encryption: Boolean
        root\$1volume\$1encryption\$1key\$1arn: String
        root\$1volume\$1size: Integer 
    scaling:
      properties:
        desired\$1size: Integer
        min\$1size: Integer
        max\$1size: Integer       
  properties:
    node\$1role: String
    tags: List
    kubernetes\$1version: String        
  requirements:
    cluster: String
    subnets: List
    network\$1interfaces: List
    security\$1groups: List
    placement\$1group: String
    user\$1data: String
    labels: List
```

## Fonctionnalités
<a name="node-eks-managed-node-capabilities"></a><a name="node_eks_managed_node_compute"></a>`compute`

Propriétés qui définissent les paramètres de calcul pour le groupe de nœuds géré par Amazon EKS, tels que les types d' EC2 instances Amazon et les EC2 instances Amazon AMIs.

 `ami_type`    
Type d'AMI compatible avec Amazon EKS.  
Obligatoire : oui  
Type : String  
Valeurs possibles : `AL2_x86_64` `AL2_x86_64_GPU` \$1 `AL2_ARM_64` \$1 `AL2023_x86_64` \$1 `AL2023_ARM_64` \$1 `AL2023_x86_64_NVIDIA` \$1 `AL2023_x86_64_NEURON` `CUSTOM` \$1 `BOTTLEROCKET_ARM_64` \$1 `BOTTLEROCKET_x86_64` \$1 `BOTTLEROCKET_ARM_64_NVIDIA` \$1 `BOTTLEROCKET_x86_64_NVIDIA`

 `ami_id`    
ID de l'AMI.  
Obligatoire : non  
Type : String  
Si `ami_type` les deux `ami_id` sont spécifiés dans le modèle, AWS TNB n'utilisera que la `ami_id` valeur pour créer`EKSManagedNode`.

 `instance_types`    
Taille de l'instance.  
Obligatoire : oui  
Type : liste

 `key_pair`    
La paire de EC2 clés pour activer l'accès SSH.  
Obligatoire : oui  
Type : String

 `root_volume_encryption`    
Active le chiffrement Amazon EBS pour le volume racine Amazon EBS. Si cette propriété n'est pas fournie, AWS TNB chiffre les volumes racine Amazon EBS par défaut.  
Obligatoire : non  
Valeur par défaut : true  
Type : booléen

 `root_volume_encryption_key_arn`    
L'ARN de la AWS KMS clé. AWS TNB prend en charge l'ARN clé standard, l'ARN clé multirégional et l'ARN alias.  
Obligatoire : non  
Type : String  
+ Si `root_volume_encryption` c'est faux, ne l'incluez pas`root_volume_encryption_key_arn`.
+ AWS TNB prend en charge le chiffrement du volume racine des AMI soutenues par Amazon EBS.
+ Si le volume racine de l'AMI est déjà chiffré, vous devez inclure le AWS TNB `root_volume_encryption_key_arn` pour le rechiffrer.
+  Si le volume racine de l'AMI n'est pas chiffré, AWS TNB utilise le `root_volume_encryption_key_arn` pour chiffrer le volume racine.

  Si vous ne l'incluez pas`root_volume_encryption_key_arn`, AWS TNB utilise la clé par défaut fournie par AWS Key Management Service pour chiffrer le volume racine.
+ AWS TNB ne déchiffre pas une AMI chiffrée.

 `root_volume_size`    
Taille du volume racine d'Amazon Elastic Block Store en GiBs.  
Obligatoire : non  
Valeur par défaut : 20  
Type : entier  
Valeurs possibles : 1 à 16 384<a name="node_eks_managed_node_scaling"></a>`scaling`

Propriétés qui définissent les paramètres de dimensionnement pour le groupe de nœuds géré par Amazon EKS, tels que le nombre souhaité d' EC2 instances Amazon et le nombre minimum et maximum d' EC2 instances Amazon dans le groupe de nœuds.

 `desired_size`    
Le nombre d'instances qu'il contient NodeGroup.  
Obligatoire : oui  
Type : entier

 `min_size`    
Le nombre minimum d'instances dans ce cas NodeGroup.  
Obligatoire : oui  
Type : entier

 `max_size`    
Le nombre maximum d'instances dans ce cas NodeGroup.  
Obligatoire : oui  
Type : entier

## Propriétés
<a name="node_eks_managed_node-properties"></a>

 `node_role`    
L'ARN du rôle IAM attaché à l' EC2 instance Amazon.  
Obligatoire : oui  
Type : String

 `tags`    
Les balises à associer à la ressource.  
Obligatoire : non  
Type : liste

 `kubernetes_version`    
Version Kubernetes pour le groupe Managed Node. AWS TNB prend en charge les versions 1.25 à 1.32 de Kubernetes. Éléments à prendre en compte :  
+ Spécifiez soit le `kubernetes_version` soit`ami_id`. Ne spécifiez pas les deux.
+ Le `kubernetes_version` doit être inférieur ou égal au AWS.Compute. EKSManagedVersion du nœud.
+ Il peut y avoir une différence de 3 versions entre le AWS.Compute. EKSManagedVersion du nœud et`kubernetes_version`.
+ Si aucun des `kubernetes_version` ou `ami_id` n'est spécifié, AWS TNB utilisera la dernière AMI de la `AWS.Compute.EKSManagedNode` version pour créer `EKSManagedNode`
Obligatoire : non  
Type : String  
Valeurs possibles : 1,25 \$1 1,26 \$1 1,27 \$1 1,28 \$1 1,29 \$1 1,30 \$1 1,31 \$1 1,32

## Prérequis
<a name="node-eks-managed-node-requirements"></a>

 `cluster`    
Un nœud [AWS.Compute.EKS](node-eks.md).  
Obligatoire : oui  
Type : String

 `subnets`    
Un nœud [AWS.Networking.Subnet.](node-subnet.md)  
Obligatoire : oui  
Type : liste

 `network_interfaces`    
Un nœud [AWS.Networking.ENI.](node-eni.md) Assurez-vous que les interfaces réseau et les sous-réseaux sont définis sur la même zone de disponibilité, sinon l'instanciation échouera.  
Lorsque vous définissez`network_interfaces`, AWS TNB obtient l'autorisation associée à la `multus_role` propriété si vous ENIs l'avez incluse dans le nœud `multus` [AWS.compute.EKS](https://docs.aws.amazon.com/tnb/latest/ug/node-eks.html). Sinon, AWS TNB obtient l'autorisation associée à ENIs partir de la propriété [node\$1role](#node_eks_managed_node_node_role).  
Obligatoire : non  
Type : liste

 `security_groups`    
Un [AWS.Networking. SecurityGroup](node-networking-security-group.md)nœud.  
Obligatoire : non  
Type : liste

 `placement_group`    
Un [tosca.nodes.AWS.Calculer. PlacementGroup](node-compute-placement-group.md)nœud.  
Obligatoire : non  
Type : String

 `user_data`    
Un [tosca.nodes.AWS.Calculer. UserData](node-compute-user-data.md)référence de nœud. Un script de données utilisateur est transmis aux EC2 instances Amazon lancées par le groupe de nœuds gérés. Ajoutez les autorisations requises pour exécuter des données utilisateur personnalisées au node\$1role transmis au groupe de nœuds.  
Obligatoire : non  
Type : String

 `labels`    
Liste des étiquettes de nœuds. L'étiquette d'un nœud doit avoir un nom et une valeur. Créez une étiquette en utilisant les critères suivants :  
+ Le nom et la valeur doivent être séparés par`=`.
+ Le nom et la valeur peuvent chacun comporter jusqu'à 63 caractères.
+ L'étiquette peut inclure des lettres (A-Z, a-z), des chiffres (0-9) et les caractères suivants : `[-, _, ., *, ?]`
+ Le nom et la valeur doivent commencer et se terminer par un `*` caractère alphanumérique ou. `?`
Par exemple, `myLabelName1=*NodeLabelValue1`  
Obligatoire : non  
Type : liste

## exemple
<a name="node-eks-managed-node-example"></a>

```
SampleEKSManagedNode:
  type: tosca.nodes.AWS.Compute.EKSManagedNode
  capabilities:
    compute:
      properties:
        ami_type: "AL2_x86_64"
        instance_types:
          - "t3.xlarge"
        key_pair: "SampleKeyPair"
        root_volume_encryption: true
        root_volume_encryption_key_arn: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        root_volume_size: 1500    
    scaling:
      properties:
        desired_size: 1
        min_size: 1
        max_size: 1
  properties:
    node_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleRole"
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing" 
    kubernetes_version:
      - "1.30" 
  requirements:
    cluster: SampleEKS
    subnets:
      - SampleSubnet
    network_interfaces:
      - SampleENI01
      - SampleENI02
    security_groups:
      - SampleSecurityGroup01
      - SampleSecurityGroup02
    placement_group: SamplePlacementGroup
    user_data: CustomUserData
    labels:
      - "sampleLabelName001=sampleLabelValue001"
      - "sampleLabelName002=sampleLabelValue002"
```

# AWS.Calculer. EKSSelfManagedNode
<a name="node-eks-self-managed"></a>

AWS TNB prend en charge les nœuds autogérés Amazon EKS pour automatiser le provisionnement et la gestion du cycle de vie des nœuds ( EC2 instances Amazon) pour les clusters Amazon EKS Kubernetes. Pour créer un groupe de nœuds Amazon EKS, procédez comme suit :
+ Choisissez les Amazon Machine Images (AMI) pour les nœuds de travail de votre cluster en fournissant soit l'ID de l'AMI.
+ Fournissez une paire de EC2 clés Amazon pour l'accès SSH.
+ Assurez-vous que votre groupe de nœuds est associé à un cluster Amazon EKS.
+ Indiquez le type d'instance et les tailles souhaitées, minimales et maximales.
+ Fournissez les sous-réseaux pour les nœuds de travail.
+ Vous pouvez éventuellement associer des groupes de sécurité, des étiquettes de nœuds et un groupe de placement à votre groupe de nœuds.

## Syntaxe
<a name="node-eks-self-managed-node-syntax"></a>

```
tosca.nodes.AWS.Compute.EKSSelfManagedNode:
  capabilities:
    compute:
      properties:
        ami\$1id: String
        instance\$1type: String
        key\$1pair: String
        root\$1volume\$1encryption: Boolean
        root\$1volume\$1encryption\$1key\$1arn: String    
        root\$1volume\$1size: Integer
    scaling:
      properties:
        desired\$1size: Integer
        min\$1size: Integer
        max\$1size: Integer  
  properties:
    node\$1role: String    
    tags: List          
  requirements:
    cluster: String
    subnets: List
    network\$1interfaces: List
    security\$1groups: List
    placement\$1group: String
    user\$1data: String
    labels: List
```

## Fonctionnalités
<a name="node-eks-self-managed-node-capabilities"></a><a name="node_eks_self_managed_node_compute"></a>`compute`

Propriétés qui définissent les paramètres de calcul pour les nœuds autogérés Amazon EKS, tels que les types d' EC2 instances Amazon et les EC2 instances AMIs Amazon.

 `ami_id`    
ID d'AMI utilisé pour lancer l'instance. AWS TNB prend en charge les instances qui tirent parti de IMDSv2. Pour de plus amples informations, veuillez consulter [Version IMDS](imds-version.md).  
Vous pouvez mettre à jour l'ID AMI pour`EKSSelfManagedNode`. La version Amazon EKS de l'AMI doit être identique ou inférieure à 2 versions au maximum à la version du cluster Amazon EKS. Par exemple, si la version du cluster Amazon EKS est 1.31, la version de l'AMI Amazon EKS doit être 1.31, 1.30 ou 1.29.
Obligatoire : oui  
Type : String

 `instance_type`    
Taille de l'instance.  
Obligatoire : oui  
Type : String

 `key_pair`    
La paire de EC2 clés Amazon pour activer l'accès SSH.  
Obligatoire : oui  
Type : String

 `root_volume_encryption`    
Active le chiffrement Amazon EBS pour le volume racine Amazon EBS. Si cette propriété n'est pas fournie, AWS TNB chiffre les volumes racine Amazon EBS par défaut.  
Obligatoire : non  
Valeur par défaut : true  
Type : booléen

 `root_volume_encryption_key_arn`    
L'ARN de la AWS KMS clé. AWS TNB prend en charge l'ARN clé standard, l'ARN clé multirégional et l'ARN alias.  
Obligatoire : non  
Type : String  
+ Si `root_volume_encryption` c'est faux, ne l'incluez pas`root_volume_encryption_key_arn`.
+ AWS TNB prend en charge le chiffrement du volume racine des AMI soutenues par Amazon EBS.
+ Si le volume racine de l'AMI est déjà chiffré, vous devez inclure le AWS TNB `root_volume_encryption_key_arn` pour le rechiffrer.
+  Si le volume racine de l'AMI n'est pas chiffré, AWS TNB utilise le `root_volume_encryption_key_arn` pour chiffrer le volume racine.

  Si vous ne l'incluez pas`root_volume_encryption_key_arn`, AWS TNB l'utilise AWS Managed Services pour chiffrer le volume racine.
+ AWS TNB ne déchiffre pas une AMI chiffrée.

 `root_volume_size`    
Taille du volume racine d'Amazon Elastic Block Store en GiBs.  
Obligatoire : non  
Valeur par défaut : 20  
Type : entier  
Valeurs possibles : 1 à 16 384<a name="node_eks_self_managed_node_scaling"></a>`scaling`

Propriétés qui définissent les paramètres de dimensionnement pour les nœuds autogérés Amazon EKS, tels que le nombre souhaité d' EC2 instances Amazon et le nombre minimum et maximum d' EC2 instances Amazon dans le groupe de nœuds.

 `desired_size`    
Le nombre d'instances qu'il contient NodeGroup.  
Obligatoire : oui  
Type : entier

 `min_size`    
Le nombre minimum d'instances dans ce cas NodeGroup.  
Obligatoire : oui  
Type : entier

 `max_size`    
Le nombre maximum d'instances dans ce cas NodeGroup.  
Obligatoire : oui  
Type : entier

## Propriétés
<a name="node-eks-self-managed-node-properties"></a>

 `node_role`    
L'ARN du rôle IAM attaché à l' EC2 instance Amazon.  
Obligatoire : oui  
Type : String

 `tags`    
Les balises à associer à la ressource. Les balises seront propagées aux instances créées par la ressource.  
Obligatoire : non  
Type : liste

## Prérequis
<a name="node-eks-self-managed-node-requirements"></a>

 `cluster`    
Un nœud [AWS.Compute.EKS](node-eks.md).  
Obligatoire : oui  
Type : String

 `subnets`    
Un nœud [AWS.Networking.Subnet.](node-subnet.md)  
Obligatoire : oui  
Type : liste

 `network_interfaces`    
Un nœud [AWS.Networking.ENI.](node-eni.md) Assurez-vous que les interfaces réseau et les sous-réseaux sont définis sur la même zone de disponibilité, sinon l'instanciation échouera.  
Lorsque vous définissez`network_interfaces`, AWS TNB obtient l'autorisation associée à la `multus_role` propriété si vous ENIs l'avez incluse dans le nœud `multus` [AWS.compute.EKS](https://docs.aws.amazon.com/tnb/latest/ug/node-eks.html). Sinon, AWS TNB obtient l'autorisation associée à ENIs partir de la propriété [node\$1role](#node_eks_self_managed_node_role).  
Obligatoire : non  
Type : liste

 `security_groups`    
Un [AWS.Networking. SecurityGroup](node-networking-security-group.md)nœud.  
Obligatoire : non  
Type : liste

 `placement_group`    
Un [tosca.nodes.AWS.Calculer. PlacementGroup](node-compute-placement-group.md)nœud.  
Obligatoire : non  
Type : String

 `user_data`    
Un [tosca.nodes.AWS.Calculer. UserData](node-compute-user-data.md)référence de nœud. Un script de données utilisateur est transmis aux EC2 instances Amazon lancées par le groupe de nœuds autogéré. Ajoutez les autorisations requises pour exécuter des données utilisateur personnalisées au node\$1role transmis au groupe de nœuds.  
Obligatoire : non  
Type : String

 `labels`    
Liste des étiquettes de nœuds. L'étiquette d'un nœud doit avoir un nom et une valeur. Créez une étiquette en utilisant les critères suivants :  
+ Le nom et la valeur doivent être séparés par`=`.
+ Le nom et la valeur peuvent chacun comporter jusqu'à 63 caractères.
+ L'étiquette peut inclure des lettres (A-Z, a-z), des chiffres (0-9) et les caractères suivants : `[-, _, ., *, ?]`
+ Le nom et la valeur doivent commencer et se terminer par un `*` caractère alphanumérique ou. `?`
Par exemple, `myLabelName1=*NodeLabelValue1`  
Obligatoire : non  
Type : liste

## exemple
<a name="node-eks-self-managed-node-example"></a>

```
SampleEKSSelfManagedNode:
  type: tosca.nodes.AWS.Compute.EKSSelfManagedNode
  capabilities:
    compute:
      properties:
        ami_id: "ami-123123EXAMPLE"
        instance_type: "c5.large"
        key_pair: "SampleKeyPair"
        root_volume_encryption: true
        root_volume_encryption_key_arn: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        root_volume_size: 1500
    scaling:
      properties:
        desired_size: 1
        min_size: 1
        max_size: 1
  properties:
    node_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleNodeRole" 
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing"          
  requirements:
    cluster: SampleEKSCluster
    subnets:
      - SampleSubnet
    network_interfaces:
      - SampleNetworkInterface01
      - SampleNetworkInterface02
    security_groups:
      - SampleSecurityGroup01
      - SampleSecurityGroup02
    placement_group: SamplePlacementGroup
    user_data: CustomUserData
    labels:
      - "sampleLabelName001=sampleLabelValue001"
      - "sampleLabelName002=sampleLabelValue002"
```

# AWS.Calculer. PlacementGroup
<a name="node-compute-placement-group"></a>

Un PlacementGroup nœud prend en charge différentes stratégies pour placer EC2 des instances Amazon.

Lorsque vous lancez un nouvel Amazon EC2instance, le EC2 service Amazon tente de placer l'instance de telle sorte que toutes vos instances soient réparties sur le matériel sous-jacent afin de minimiser les défaillances corrélées. Vous pouvez utiliser des *groupes de placement* pour influencer le placement d'un groupe d'instances *interdépendantes* afin de répondre aux besoins de votre charge de travail.

## Syntaxe
<a name="node-compute-placement-group-syntax"></a>

```
tosca.nodes.AWS.Compute.PlacementGroup
  properties:
    strategy: String
    partition\$1count: Integer
    tags: List
```

## Propriétés
<a name="node-compute-placement-group-properties"></a>

 `strategy`    
La stratégie à utiliser pour placer des EC2 instances Amazon.  
Obligatoire : oui  
Type : String  
Valeurs possibles : CLUSTER \$1 PARTITION \$1 SPREAD\$1HOST \$1 SPREAD\$1RACK  
+ **CLUSTER** : regroupe les instances à proximité les unes des autres au sein d'une zone de disponibilité. Cette stratégie permet aux charges de travail d'atteindre les performances réseau à faible latence nécessaires aux node-to-node communications étroitement couplées, typiques des applications de calcul haute performance (HPC).
+ **PARTITION** : répartit vos instances sur des partitions logiques de telle sorte que les groupes d'instances d'une partition ne partagent pas le matériel sous-jacent avec des groupes d'instances situés dans différentes partitions. Cette stratégie est généralement utilisée par les grandes charges de travail distribuées et répliquées telles que Hadoop, Cassandra, et Kafka.
+ **SPREAD\$1RACK** — place un petit groupe d'instances sur un matériel sous-jacent distinct afin de réduire les défaillances corrélées.
+ **SPREAD\$1HOST** : utilisé uniquement avec les groupes de placement Outpost. Place un petit groupe d'instances sur un matériel sous-jacent distinct afin de réduire les défaillances corrélées.

 `partition_count`    
Nombre de partitions.  
Obligatoire : obligatoire uniquement lorsque `strategy` ce paramètre est défini sur`PARTITION`.  
Type : entier  
Valeurs possibles : 1 \$1 2 \$1 3 \$1 4 \$1 5 \$1 6 \$1 7

 `tags`    
Les balises que vous pouvez associer à la ressource du groupe de placement.  
Obligatoire : non  
Type : liste

## exemple
<a name="node-compute-placement-group-example"></a>

```
ExamplePlacementGroup:
  type: tosca.nodes.AWS.Compute.PlacementGroup
  properties:
    strategy: "PARTITION"
    partition_count: 5
    tags: 
      - tag_key=tag_value
```

# AWS.Calculer. UserData
<a name="node-compute-user-data"></a>

AWS TNB prend en charge le lancement d' EC2 instances Amazon avec des données utilisateur personnalisées, via le UserData nœud du Network Service Descriptor (NSD). Pour plus d'informations sur les données utilisateur personnalisées, consultez la section [Données utilisateur et scripts shell](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user-data-shell-scripts) dans le *Guide de EC2 l'utilisateur Amazon*.

Lors de l'instanciation du réseau, AWS TNB fournit l'enregistrement de l' EC2 instance Amazon au cluster via un script de données utilisateur. Lorsque des données utilisateur personnalisées sont également fournies, AWS TNB fusionne les deux scripts et les transmet en tant que [script multimime](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user-data-mime-multi) à Amazon. EC2 Le script de données utilisateur personnalisé est exécuté avant le script d'enregistrement Amazon EKS.

Pour utiliser des variables personnalisées dans le script de données utilisateur, ajoutez un point d'exclamation `!` après l'accolade ouverte. `{` Par exemple, pour l'utiliser `MyVariable` dans le script, entrez : `{!MyVariable}`

**Note**  
AWS TNB prend en charge les scripts de données utilisateur d'une taille maximale de 7 Ko.
 AWS TNB étant utilisé CloudFormation pour traiter et afficher le script de `multimime` données utilisateur, assurez-vous que le script respecte toutes les règles. CloudFormation 

## Syntaxe
<a name="node-compute-user-data-syntax"></a>

```
tosca.nodes.AWS.Compute.UserData:
  properties:
    implementation: String
    content\$1type: String
```

## Propriétés
<a name="node-compute-user-data-properties"></a>

 `implementation`    
Le chemin relatif vers la définition du script de données utilisateur. Le format doit être le suivant : `./scripts/script_name.sh`  
Obligatoire : oui  
Type : String

 `content_type`    
Type de contenu du script de données utilisateur.  
Obligatoire : oui  
Type : String  
Valeurs possibles : `x-shellscript`

## exemple
<a name="node-compute-user-data-example"></a>

```
ExampleUserData:
  type: tosca.nodes.AWS.Compute.UserData
  properties:
    content_type: "text/x-shellscript"
    implementation: "./scripts/customUserData.sh"
```

# AWS.Réseautage. SecurityGroup
<a name="node-networking-security-group"></a>

AWS TNB prend en charge les groupes de sécurité pour automatiser le provisionnement des groupes de [ EC2sécurité Amazon que vous pouvez associer aux groupes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html) de nœuds du cluster Amazon EKS Kubernetes.

## Syntaxe
<a name="node-networking-security-group-syntax"></a>

```
tosca.nodes.AWS.Networking.SecurityGroup
  properties:
    description: String
    name: String
    tags: List
  requirements:
    vpc: String
```

## Propriétés
<a name="node-networking-security-group-properties"></a>

 `description`    
Description du groupe de sécurité. Vous pouvez utiliser jusqu'à 255 caractères pour décrire le groupe. Vous ne pouvez inclure que des lettres (A-Z et a-z), des chiffres (0-9), des espaces et les caractères spéciaux suivants : .\$1- :/() \$1, @ [] \$1=& ; \$1\$1 \$1 \$1\$1  
Obligatoire : oui  
Type : String

 `name`    
Nom du groupe de sécurité. Vous pouvez utiliser jusqu'à 255 caractères pour le nom. Vous ne pouvez inclure que des lettres (A-Z et a-z), des chiffres (0-9), des espaces et les caractères spéciaux suivants : .\$1- :/() \$1, @ [] \$1=& ; \$1\$1 \$1 \$1\$1  
Obligatoire : oui  
Type : String

 `tags`    
Les balises que vous pouvez associer à la ressource du groupe de sécurité.  
Obligatoire : non  
Type : liste

## Prérequis
<a name="node-networking-security-group-requirements"></a>

 `vpc`    
Un nœud [AWS.Networking.VPC.](node-vpc.md)  
Obligatoire : oui  
Type : String

## exemple
<a name="node-networking-security-group-example"></a>

```
SampleSecurityGroup001:
  type: tosca.nodes.AWS.Networking.SecurityGroup
  properties:
        description: "Sample Security Group for Testing"
        name: "SampleSecurityGroup"
        tags:
          - "Name=SecurityGroup"
          - "Environment=Testing"
      requirements:
        vpc: SampleVPC
```

# AWS.Réseautage. SecurityGroupEgressRule
<a name="node-networking-security-group-egress-rule"></a>

AWS TNB prend en charge les règles de sortie des groupes de sécurité afin d'automatiser le provisionnement des règles de sortie des groupes de EC2 sécurité Amazon qui peuvent être associées à .Networking. AWS SecurityGroup. Notez que vous devez fournir un cidr\$1 ip/destination\$1security\$1group/destination \$1prefix\$1list comme destination pour le trafic de sortie.

## Syntaxe
<a name="node-networking-security-group-egress-rule-syntax"></a>

```
AWS.Networking.SecurityGroupEgressRule
  properties:
    ip\$1protocol: String
    from\$1port: Integer
    to\$1port: Integer
    description: String
    destination\$1prefix\$1list: String
    cidr\$1ip: String
    cidr\$1ipv6: String
  requirements:
    security\$1group: String
    destination\$1security\$1group: String
```

## Propriétés
<a name="node-networking-security-group-egress-rule-properties"></a>

 `cidr_ip`    
La plage d' IPv4 adresses au format CIDR. Vous devez spécifier une plage d'adresses CIDR qui autorise le trafic sortant.  
Obligatoire : non  
Type : String

 `cidr_ipv6`    
La plage d' IPv6 adresses au format CIDR, pour le trafic sortant. Vous devez spécifier un groupe de sécurité de destination (`destination_security_group` ou `destination_prefix_list`) ou une plage d'adresses CIDR (`cidr_ip` ou `cidr_ipv6`).  
Obligatoire : non  
Type : String

 `description`    
Description d'une règle de groupe de sécurité pour le trafic entrant (sortant). Vous pouvez utiliser jusqu'à 255 caractères pour décrire la règle.  
Obligatoire : non  
Type : String

 `destination_prefix_list`    
L'ID de liste de préfixes d'une liste de préfixes gérée par Amazon VPC existante. Il s'agit de la destination à partir des instances de groupes de nœuds associées au groupe de sécurité. Pour plus d'informations sur les listes de préfixes gérées, consultez la section [Listes de préfixes gérées](https://docs.aws.amazon.com/vpc/latest/userguide/managed-prefix-lists.html) dans le guide de l'*utilisateur Amazon VPC*.  
Obligatoire : non  
Type : String

 `from_port`    
Si le protocole est TCP ou UDP, il s'agit du début de la plage de ports. S'il s'agit du protocole ICMP ou ICMPv6, il s'agit du numéro de type. La valeur -1 indique les ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv 6 codes.  
Obligatoire : non  
Type : entier

 `ip_protocol`    
Nom du protocole IP (tcp, udp, icmp, icmpv6) ou numéro de protocole. Utilisez -1 pour spécifier tous les protocoles. Lorsque vous autorisez les règles du groupe de sécurité, la spécification de -1 ou d'un numéro de protocole autre que TCP, UDP, ICMP ou ICMPv6 autorise le trafic sur tous les ports, quelle que soit la plage de ports que vous spécifiez. Pour TCP, UDP et ICMP, vous devez spécifier une plage de ports. Pour icmpv6, la plage de ports est facultative ; si vous omettez la plage de ports, le trafic est autorisé pour tous les types et codes.  
Obligatoire : oui  
Type : String

 `to_port`    
Si le protocole est TCP ou UDP, il s'agit de la fin de la plage de ports. Si le protocole est ICMP ou ICMPv6, voici le code. La valeur -1 indique les ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv 6 codes.  
Obligatoire : non  
Type : entier

## Prérequis
<a name="node-networking-security-group-egress-rule-requirements"></a>

 `security_group`    
ID du groupe de sécurité auquel cette règle doit être ajoutée.  
Obligatoire : oui  
Type : String

 `destination_security_group`    
ID ou référence TOSCA du groupe de sécurité de destination vers lequel le trafic de sortie est autorisé.  
Obligatoire : non  
Type : String

## exemple
<a name="node-networking-security-group-egress-rule-example"></a>

```
SampleSecurityGroupEgressRule:
      type: tosca.nodes.AWS.Networking.SecurityGroupEgressRule
      properties:
        ip_protocol: "tcp"
        from_port: 8000
        to_port: 9000
        description: "Egress Rule for sample security group"
        cidr_ipv6: "2600:1f14:3758:ca00::/64"    
      requirements:
        security_group: SampleSecurityGroup001
        destination_security_group: SampleSecurityGroup002
```

# AWS.Réseautage. SecurityGroupIngressRule
<a name="node-networking-security-group-ingress-rule"></a>

AWS TNB prend en charge les règles d'entrée des groupes de sécurité afin d'automatiser le provisionnement des règles d'entrée des groupes de EC2 sécurité Amazon qui peuvent être associées à .Networking. AWS SecurityGroup. Notez que vous devez fournir une liste cidr\$1 ip/source\$1security\$1group/source \$1prefix\$1list comme source pour le trafic entrant.

## Syntaxe
<a name="node-networking-security-group-ingress-rule-syntax"></a>

```
AWS.Networking.SecurityGroupIngressRule
  properties:
    ip\$1protocol: String
    from\$1port: Integer
    to\$1port: Integer
    description: String
    source\$1prefix\$1list: String
    cidr\$1ip: String
    cidr\$1ipv6: String
  requirements:
    security\$1group: String
    source\$1security\$1group: String
```

## Propriétés
<a name="node-networking-security-group-ingress-rule-properties"></a>

 `cidr_ip`    
La plage d' IPv4 adresses au format CIDR. Vous devez spécifier une plage d'adresses CIDR qui autorise le trafic entrant.  
Obligatoire : non  
Type : String

 `cidr_ipv6`    
La plage d' IPv6 adresses au format CIDR, pour le trafic entrant. Vous devez spécifier un groupe de sécurité source (`source_security_group` ou `source_prefix_list`) ou une plage d'adresses CIDR (`cidr_ip` ou `cidr_ipv6`).  
Obligatoire : non  
Type : String

 `description`    
Description d'une règle de groupe de sécurité d'entrée (entrante). Vous pouvez utiliser jusqu'à 255 caractères pour décrire la règle.  
Obligatoire : non  
Type : String

 `source_prefix_list`    
L'ID de liste de préfixes d'une liste de préfixes gérée par Amazon VPC existante. Il s'agit de la source à partir de laquelle les instances du groupe de nœuds associées au groupe de sécurité seront autorisées à recevoir du trafic. Pour plus d'informations sur les listes de préfixes gérées, consultez la section [Listes de préfixes gérées](https://docs.aws.amazon.com/vpc/latest/userguide/managed-prefix-lists.html) dans le guide de l'*utilisateur Amazon VPC*.  
Obligatoire : non  
Type : String

 `from_port`    
Si le protocole est TCP ou UDP, il s'agit du début de la plage de ports. S'il s'agit du protocole ICMP ou ICMPv6, il s'agit du numéro de type. La valeur -1 indique les ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv 6 codes.  
Obligatoire : non  
Type : entier

 `ip_protocol`    
Nom du protocole IP (tcp, udp, icmp, icmpv6) ou numéro de protocole. Utilisez -1 pour spécifier tous les protocoles. Lorsque vous autorisez les règles du groupe de sécurité, la spécification de -1 ou d'un numéro de protocole autre que TCP, UDP, ICMP ou ICMPv6 autorise le trafic sur tous les ports, quelle que soit la plage de ports que vous spécifiez. Pour TCP, UDP et ICMP, vous devez spécifier une plage de ports. Pour icmpv6, la plage de ports est facultative ; si vous omettez la plage de ports, le trafic est autorisé pour tous les types et codes.  
Obligatoire : oui  
Type : String

 `to_port`    
Si le protocole est TCP ou UDP, il s'agit de la fin de la plage de ports. Si le protocole est ICMP ou ICMPv6, voici le code. La valeur -1 indique les ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv 6 codes.  
Obligatoire : non  
Type : entier

## Prérequis
<a name="node-networking-security-group-ingress-rule-requirements"></a>

 `security_group`    
ID du groupe de sécurité auquel cette règle doit être ajoutée.  
Obligatoire : oui  
Type : String

 `source_security_group`    
ID ou référence TOSCA du groupe de sécurité source à partir duquel le trafic entrant doit être autorisé.  
Obligatoire : non  
Type : String

## exemple
<a name="node-networking-security-group-ingress-rule-example"></a>

```
SampleSecurityGroupIngressRule:
      type: tosca.nodes.AWS.Networking.SecurityGroupIngressRule
      properties:
        ip_protocol: "tcp"
        from_port: 8000
        to_port: 9000
        description: "Ingress Rule for free5GC cluster on IPv6"
        cidr_ipv6: "2600:1f14:3758:ca00::/64"    
      requirements:
        security_group: SampleSecurityGroup1
        source_security_group: SampleSecurityGroup2
```

# AWS.Ressource.Importer
<a name="node-resource-import"></a>

Vous pouvez importer les AWS ressources suivantes dans AWS TNB :
+ VPC
+ Sous-réseau
+ Table de routage
+ Internet Gateway
+ Security Group

## Syntaxe
<a name="node-resource-import-syntax"></a>

```
tosca.nodes.AWS.Resource.Import
  properties:
    resource\$1type: String
    resource\$1id: String
```

## Propriétés
<a name="node-resource-import-properties"></a>

 `resource_type`    
Type de ressource importé dans AWS TNB.  
Obligatoire : non  
Type : liste

 `resource_id`    
ID de ressource importé dans AWS TNB.  
Obligatoire : non  
Type : liste

## exemple
<a name="node-resource-import-example"></a>

```
SampleImportedVPC:
  type: tosca.nodes.AWS.Resource.Import
  properties:
    resource_type: "tosca.nodes.AWS.Networking.VPC"
    resource_id: "vpc-123456"
```

# AWS.Networking.eni
<a name="node-eni"></a>

Une interface réseau est un composant réseau logique d'un VPC qui représente une carte réseau virtuelle. Une adresse IP est attribuée à une interface réseau automatiquement ou manuellement en fonction de son sous-réseau. Après avoir déployé une EC2 instance Amazon dans un sous-réseau, vous pouvez y associer une interface réseau ou détacher une interface réseau de cette EC2 instance Amazon et la rattacher à une autre EC2 instance Amazon de ce sous-réseau. L'index de l'appareil identifie la position dans l'ordre de fixation.

## Syntaxe
<a name="node-eni-syntax"></a>

```
tosca.nodes.AWS.Networking.ENI:
  properties:
    device\$1index: Integer
    source\$1dest\$1check: Boolean
    tags: List
  requirements:
    subnet: String
    security\$1groups: List
```

## Propriétés
<a name="node-eni-properties"></a>

 `device_index`    
L'indice de l'appareil doit être supérieur à zéro.  
Obligatoire : oui  
Type : entier

 `source_dest_check`    
Indique si l'interface réseau effectue la vérification de la source/de la destination. La valeur `true` signifie que la vérification est activée, tandis que la valeur `false` signifie qu'elle est désactivée.  
Valeur autorisée : vrai, faux  
Valeur par défaut : true  
Obligatoire : non  
Type : booléen

 `tags`    
Les balises à associer à la ressource.  
Obligatoire : non  
Type : liste

## Prérequis
<a name="node-eni-requirements"></a>

 `subnet`    
Un nœud [AWS.Networking.Subnet.](node-subnet.md)  
Obligatoire : oui  
Type : String

 `security_groups`    
Un [AWS.Networking. SecurityGroup](node-networking-security-group.md)nœud.  
Obligatoire : non  
Type : String

## exemple
<a name="node-eni-example"></a>

```
SampleENI:
  type: tosca.nodes.AWS.Networking.ENI
  properties:
    device_index: 5
    source_dest_check: true
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing" 
  requirements:
    subnet: SampleSubnet
    security_groups:
      - SampleSecurityGroup01
      - SampleSecurityGroup02
```

# AWS.HookExecution
<a name="node-hook-execution"></a>

Un hook de cycle de vie vous permet d'exécuter vos propres scripts dans le cadre de votre infrastructure et de l'instanciation de votre réseau.

## Syntaxe
<a name="node-hook-execution-syntax"></a>

```
tosca.nodes.AWS.HookExecution:
  capabilities:
    execution:
      properties:
        type: String
  requirements:
    definition: String
    vpc: String
```

## Fonctionnalités
<a name="node-hook-execution-capabilities"></a><a name="node_hook_execution"></a>`execution`

Propriétés du moteur d'exécution du hook qui exécute les scripts du hook.

 `type`    
Type de moteur d'exécution du hook.  
Obligatoire : non  
Type : String  
Valeurs possibles : `CODE_BUILD` 

## Prérequis
<a name="node-hook-execution-requirements"></a>

 `definition`    
Un [AWS. HookDefinition.Nœud Bash.](node-hook-bash.md)  
Obligatoire : oui  
Type : String

 `vpc`    
Un nœud [AWS.Networking.VPC.](node-vpc.md)  
Obligatoire : oui  
Type : String

## exemple
<a name="node-hook-execution-example"></a>

```
SampleHookExecution:
  type: tosca.nodes.AWS.HookExecution
  requirements:
    definition: SampleHookScript
    vpc: SampleVPC
```

# AWS.Réseautage. InternetGateway
<a name="node-internet-gateway"></a>

Définit un nœud AWS Internet Gateway.

## Syntaxe
<a name="node-internet-gateway-syntax"></a>

```
tosca.nodes.AWS.Networking.InternetGateway:
  capabilities:
    routing:
      properties:
        dest\$1cidr: String
        ipv6\$1dest\$1cidr: String    
  properties:
    tags: List
    egress\$1only: Boolean
  requirements:
    vpc: String
    route\$1table: String
```

## Fonctionnalités
<a name="node-internet-gateway-capabilities"></a><a name="node_internet_gateway_routing"></a>`routing`

Propriétés qui définissent la connexion de routage au sein du VPC. Vous devez inclure la `ipv6_dest_cidr` propriété `dest_cidr` ou.

 `dest_cidr`    
Le bloc IPv4 CIDR utilisé pour la correspondance de destination. Cette propriété est utilisée pour créer un itinéraire dans `RouteTable` et sa valeur est utilisée comme`DestinationCidrBlock`.  
Obligatoire : Non si vous avez inclus la `ipv6_dest_cidr` propriété.  
Type : String

 `ipv6_dest_cidr`    
Le bloc IPv6 CIDR utilisé pour la correspondance de destination.  
Obligatoire : Non si vous avez inclus la `dest_cidr` propriété.  
Type : String

## Propriétés
<a name="node-internet-gateway-properties"></a>

 `tags`    
Les balises à associer à la ressource.  
Obligatoire : non  
Type : liste

 `egress_only`    
Une propriété IPv6 spécifique. Indique si la passerelle Internet est uniquement destinée à la communication de sortie ou non. Lorsque `egress_only` c'est vrai, vous devez définir la `ipv6_dest_cidr` propriété.  
Obligatoire : non  
Type : booléen

## Prérequis
<a name="node-internet-gateway-requirements"></a>

 `vpc`    
Un nœud [AWS.Networking.VPC.](node-vpc.md)  
Obligatoire : oui  
Type : String

 `route_table`    
Un [AWS.Networking. RouteTable](node-route-table.md)nœud.  
Obligatoire : oui  
Type : String

## exemple
<a name="node-internet-gateway-example"></a>

```
Free5GCIGW:
  type: tosca.nodes.AWS.Networking.InternetGateway
  properties:
    egress_only: false
  capabilities:
    routing:
      properties:
        dest_cidr: "0.0.0.0/0"
        ipv6_dest_cidr: "::/0"
  requirements:
    route_table: Free5GCRouteTable
    vpc: Free5GCVPC
Free5GCEGW:
  type: tosca.nodes.AWS.Networking.InternetGateway
  properties:
    egress_only: true
  capabilities:
    routing:
      properties:
        ipv6_dest_cidr: "::/0"
  requirements:
    route_table: Free5GCPrivateRouteTable
    vpc: Free5GCVPC
```

# AWS.Réseautage. RouteTable
<a name="node-route-table"></a>

Une table de routage contient un ensemble de règles, appelées routes, qui déterminent où est dirigé le trafic réseau provenant des sous-réseaux de votre VPC ou de votre passerelle. Vous devez associer une table de routage à un VPC.

## Syntaxe
<a name="node-route-table-syntax"></a>

```
tosca.nodes.AWS.Networking.RouteTable:
  properties:
    tags: List
  requirements:
    vpc: String
```

## Propriétés
<a name="node-route-table-properties"></a>

 `tags`    
Balises à associer à la ressource.  
Obligatoire : non  
Type : liste

## Prérequis
<a name="node-route-table-requirements"></a>

 `vpc`    
Un nœud [AWS.Networking.VPC.](node-vpc.md)  
Obligatoire : oui  
Type : String

## exemple
<a name="node-route-table-example"></a>

```
SampleRouteTable:
  type: tosca.nodes.AWS.Networking.RouteTable
  properties: 
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing"
  requirements:
    vpc: SampleVPC
```

# AWS.Réseau.Sous-réseau
<a name="node-subnet"></a>

Un sous-réseau est une plage d'adresses IP de votre VPC, qui doit résider entièrement dans une seule zone de disponibilité. Vous devez spécifier un VPC, un bloc CIDR, une zone de disponibilité et une table de routage pour votre sous-réseau. Vous devez également définir si votre sous-réseau est privé ou public.

## Syntaxe
<a name="node-subnet-syntax"></a>

```
tosca.nodes.AWS.Networking.Subnet:
  properties:
    type: String
    availability\$1zone: String
    cidr\$1block: String
    ipv6\$1cidr\$1block: String
    ipv6\$1cidr\$1block\$1suffix: String        
    outpost\$1arn: String
    tags: List
  requirements:
    vpc: String
    route\$1table: String
```

## Propriétés
<a name="node-subnet-properties"></a>

 `type`    
Indique si les instances lancées dans ce sous-réseau reçoivent une IPv4 adresse publique.  
Obligatoire : oui  
Type : String  
Valeurs possibles : `PUBLIC` \$1 `PRIVATE`

 `availability_zone`    
Zone de disponibilité du sous-réseau. Ce champ prend en charge les zones de AWS disponibilité au sein d'une AWS région, par exemple `us-west-2` (USA Ouest (Oregon)). Il prend également en charge les zones AWS locales au sein de la zone de disponibilité, par exemple`us-west-2-lax-1a`.  
Obligatoire : oui  
Type : String

 `cidr_block`    
Le bloc CIDR pour le sous-réseau.  
Obligatoire : non  
Type : String

 `ipv6_cidr_block`    
Le bloc CIDR utilisé pour créer le IPv6 sous-réseau. Si vous incluez cette propriété, ne l'incluez pas`ipv6_cidr_block_suffix`.  
Obligatoire : non  
Type : String

 `ipv6_cidr_block_suffix`    
Le suffixe hexadécimal à 2 chiffres du bloc IPv6 CIDR pour le sous-réseau créé via Amazon VPC. Utilisez le format suivant : `2-digit hexadecimal::/subnetMask`  
Si vous incluez cette propriété, ne l'incluez pas`ipv6_cidr_block`.  
Obligatoire : non  
Type : String

 `outpost_arn`    
L'ARN dans AWS Outposts lequel le sous-réseau sera créé. Ajoutez cette propriété au modèle NSD si vous souhaitez lancer des nœuds autogérés Amazon EKS sur. AWS Outposts Pour plus d'informations, consultez [Amazon EKS AWS Outposts dans le](https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts.html) *guide de l'utilisateur Amazon EKS*.  
Si vous ajoutez cette propriété au modèle NSD, vous devez définir la valeur de la `availability_zone` propriété sur la zone de disponibilité du AWS Outposts.  
Obligatoire : non  
Type : String

 `tags`    
Les balises à associer à la ressource.  
Obligatoire : non  
Type : liste

## Prérequis
<a name="node-subnet-requirements"></a>

 `vpc`    
Un nœud [AWS.Networking.VPC.](node-vpc.md)  
Obligatoire : oui  
Type : String

 `route_table`    
Un [AWS.Networking. RouteTable](node-route-table.md)nœud.  
Obligatoire : oui  
Type : String

## exemple
<a name="node-subnet-example"></a>

```
SampleSubnet01:
  type: tosca.nodes.AWS.Networking.Subnet
  properties:
    type: "PUBLIC"
    availability_zone: "us-east-1a"
    cidr_block: "10.100.50.0/24"
    ipv6_cidr_block_suffix: "aa::/64"
    outpost_arn: "arn:aws:outposts:region:accountId:outpost/op-11223344EXAMPLE"
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing"
  requirements:
    vpc: SampleVPC
    route_table: SampleRouteTable
         
SampleSubnet02:
  type: tosca.nodes.AWS.Networking.Subnet
  properties:
    type: "PUBLIC"
    availability_zone: "us-west-2b"
    cidr_block: "10.100.50.0/24"
    ipv6_cidr_block: "2600:1f14:3758:ca00::/64"
  requirements:
    route_table: SampleRouteTable
    vpc: SampleVPC
```

# AWS.Déploiement. VNFDeployment
<a name="node-vnf-deployment"></a>

Les déploiements NF sont modélisés en fournissant l'infrastructure et l'application qui y sont associées. L'attribut [cluster](#node_vnf_deployment_cluster) indique le cluster EKS qui hébergera votre NFs. L'attribut [vnfs](#node_vnf_deployment_vnfs) spécifie les fonctions réseau pour votre déploiement. Vous pouvez également fournir des opérations d'accroche du cycle de vie facultatives de type [pre\$1create](#node_vnf_deployment_pre_create) et [post\$1create](#node_vnf_deployment_post_create) pour exécuter des instructions spécifiques à votre déploiement, telles que l'appel d'une API du système de gestion des stocks.

## Syntaxe
<a name="node-vnf-deployment-syntax"></a>

```
tosca.nodes.AWS.Deployment.VNFDeployment:
  requirements:
    deployment: String
    cluster: String
    vnfs: List
  interfaces:
    Hook:
      pre\$1create: String
      post\$1create: String
```

## Prérequis
<a name="node-vnf-deployment-requirements"></a>

 `deployment`    
Un [AWS.Deployment. VNFDeployment](node-vnf.md)nœud.  
Obligatoire : non  
Type : String

 `cluster`    
Un nœud [AWS.Compute.EKS](node-eks.md).  
Obligatoire : oui  
Type : String

 `vnfs`    
Un nœud [AWS.VNF.](node-vnf.md)  
Obligatoire : oui  
Type : String

## Interfaces
<a name="node-vnf-deployment-interfaces"></a>

### Hooks
<a name="node-vnf-deployment-hooks"></a>

Définit l'étape au cours de laquelle les hooks du cycle de vie sont exécutés.

 `pre_create`    
Un [AWS. HookExecution](node-hook-execution.md)nœud. Ce hook est exécuté avant le déploiement du `VNFDeployment` nœud.  
Obligatoire : non  
Type : String

 `post_create`    
Un [AWS. HookExecution](node-hook-execution.md)nœud. Ce hook est exécuté après le déploiement du `VNFDeployment` nœud.  
Obligatoire : non  
Type : String

## exemple
<a name="node-vnf-deployment-example"></a>

```
SampleHelmDeploy:
  type: tosca.nodes.AWS.Deployment.VNFDeployment
  requirements:
    deployment: SampleHelmDeploy2
    cluster: SampleEKS
    vnfs:
      - vnf.SampleVNF
  interfaces:
    Hook:
      pre_create: SampleHook
```

# AWS.Réseau.VPC
<a name="node-vpc"></a>

Vous devez spécifier un bloc CIDR pour votre cloud privé virtuel (VPC).

## Syntaxe
<a name="node-vpc-syntax"></a>

```
tosca.nodes.AWS.Networking.VPC:
  properties:
    cidr\$1block: String
    ipv6\$1cidr\$1block: String        
    dns\$1support: String
    tags: List
```

## Propriétés
<a name="node-vpc-properties"></a>

 `cidr_block`    
La plage IPv4 réseau du VPC, en notation CIDR.  
Obligatoire : oui  
Type : String

 `ipv6_cidr_block`    
Le bloc IPv6 CIDR utilisé pour créer le VPC.  
Valeur autorisée : `AMAZON_PROVIDED`  
Obligatoire : non  
Type : String

 `dns_support`    
Indique si les instances lancées dans le VPC ont obtenu des noms d'hôte DNS.  
Obligatoire : non  
Type : booléen  
Par défaut : `false` 

 `tags`    
Balises à associer à la ressource.  
Obligatoire : non  
Type : liste

## exemple
<a name="node-vpc-example"></a>

```
SampleVPC:
  type: tosca.nodes.AWS.Networking.VPC
  properties:
    cidr_block: "10.100.0.0/16"
    ipv6_cidr_block: "AMAZON_PROVIDED"
    dns_support: true
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing"
```

# AWS.Réseautage. NATGateway
<a name="node-nat-gateway"></a>

Vous pouvez définir un nœud de passerelle NAT public ou privé sur un sous-réseau. Pour une passerelle publique, si vous ne fournissez pas d'identifiant d'allocation d'adresse IP élastique, AWS TNB attribuera une adresse IP élastique à votre compte et l'associera à la passerelle.

## Syntaxe
<a name="node-nat-gateway-syntax"></a>

```
tosca.nodes.AWS.Networking.NATGateway:
  requirements:
    subnet: String
    internet\$1gateway: String
  properties:
    type: String
    eip\$1allocation\$1id: String
    tags: List
```

## Propriétés
<a name="node-nat-gateway-requirements"></a>

 `subnet`    
La référence du [AWS nœud .Networking.Subnet.](https://docs.aws.amazon.com/tnb/latest/ug/node-subnet.html)  
Obligatoire : oui  
Type : String

 `internet_gateway`    
Le [AWS.Networking. InternetGateway](https://docs.aws.amazon.com/tnb/latest/ug/node-internet-gateway.html)référence de nœud.  
Obligatoire : oui  
Type : String

## Propriétés
<a name="node-nat-gateway-properties"></a>

 `type`    
Indique si la passerelle est publique ou privée.  
Valeur autorisée :`PUBLIC`, `PRIVATE`  
Obligatoire : oui  
Type : String

 `eip_allocation_id`    
L'ID qui représente l'allocation de l'adresse IP élastique.  
Obligatoire : non  
Type : String

 `tags`    
Balises à associer à la ressource.  
Obligatoire : non  
Type : liste

## exemple
<a name="node-nat-gateway-example"></a>

```
Free5GCNatGateway01:
  type: tosca.nodes.AWS.Networking.NATGateway
    requirements:
       subnet: Free5GCSubnet01
       internet_gateway: Free5GCIGW
    properties:
       type: PUBLIC
       eip_allocation_id: eipalloc-12345
```

# AWS.Mise en réseau.Route
<a name="node-route"></a>

Vous pouvez définir un nœud de route qui associe la route de destination à la passerelle NAT en tant que ressource cible et ajoute la route à la table de routage associée.

## Syntaxe
<a name="node-route-syntax"></a>

```
tosca.nodes.AWS.Networking.Route:
  properties:
    dest\$1cidr\$1blocks: List          
  requirements:
    nat\$1gateway: String
    route\$1table: String
```

## Propriétés
<a name="node-route-properties"></a>

 `dest_cidr_blocks`    
Liste des IPv4 itinéraires de destination vers la ressource cible.  
Obligatoire : oui  
Type : liste  
Type de membre : Chaîne

## Prérequis
<a name="node-route-requirements"></a>

 `nat_gateway`    
Le [AWS.Networking. NATGateway](https://docs.aws.amazon.com/tnb/latest/ug/node-nat-gateway.html)référence de nœud.  
Obligatoire : oui  
Type : String

 `route_table`    
Le [AWS.Networking. RouteTable](https://docs.aws.amazon.com/tnb/latest/ug/node-route-table.html)référence de nœud.  
Obligatoire : oui  
Type : String

## exemple
<a name="node-route-example"></a>

```
Free5GCRoute:
  type: tosca.nodes.AWS.Networking.Route
  properties: 
    dest_cidr_blocks: 
      - 0.0.0.0/0
      - 10.0.0.0/28    
  requirements:
    nat_gateway: Free5GCNatGateway01
    route_table: Free5GCRouteTable
```

# AWS.Boutique. SSMParameters
<a name="node-ssm"></a>

Vous pouvez créer des paramètres SSM via AWS TNB. Les paramètres SSM que vous créez sont créés dans SSM et préfixés par l'ID de l'instance réseau AWS TNB. Cela empêche le remplacement des valeurs des paramètres lorsque plusieurs instances sont instanciées et mises à niveau à l'aide du même modèle NSD.

## Syntaxe
<a name="node-ssm-syntax"></a>

```
tosca.nodes.AWS.Store.SSMParameters
  properties:
    parameters:
      name: String
      value: String         
    tags: List
```

## Propriétés
<a name="node-ssm-properties"></a>Paramètres

 `name`    
Nom de la propriété SSM. Utilisez le format suivant : `^[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+$`  
Le nom de chaque paramètre doit comporter moins de 256 caractères.  
Obligatoire : oui  
Type : String

 `value`    
Valeur de la propriété ssm. Utilisez l’un des formats suivants :  
+ Pour les valeurs sans références : `^[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+$`
+ Pour les références statiques : `^\$\{[a-zA-Z0-9]+\.(properties|capabilities|requirements)(\.([a-zA-Z0-9\-_]+))+\}$`
+ Pour les références dynamiques : `^\$\{[a-zA-Z0-9]+\.(name|id|arn)\}$`
La valeur de chaque paramètre doit être inférieure à 4 Ko.  
Obligatoire : oui  
Type : String

 `tags`    
Les balises que vous pouvez associer à une propriété SSM.  
Obligatoire : non  
Type : liste

## exemple
<a name="node-ssm-example"></a>

```
SampleSSM
    type: tosca.nodes.AWS.Store.SSMParameters
    properties:
        parameters:
            - name: "Name1"
              value: "Value1"
            - name: "EKS_VERSION"
              value: "${SampleEKS.properties.version}"
            - name: "VPC_ID"
              value: "${SampleVPC.id}
            - name: "REGION"
              value: "${AWS::Region}
        tags:
            - "tagKey=tagValue"
```

# Nœuds communs
<a name="common-nodes"></a>

Définissez des nœuds pour le NSD et le VNFD.
+ [AWS. HookDefinition.Bash](node-hook-bash.md)

# AWS.HookDefinition.Bash
<a name="node-hook-bash"></a>

Définit une AWS HookDefinition entrée`bash`.

## Syntaxe
<a name="hookdefinition-syntax"></a>

```
tosca.nodes.AWS.HookDefinition.Bash:
  properties:
    implementation: String
    environment\$1variables: List
    execution\$1role: String
```

## Propriétés
<a name="_properties"></a>

 `implementation`    
Le chemin relatif vers la définition du crochet. Le format doit être le suivant : `./hooks/script_name.sh`  
Obligatoire : oui  
Type : String

 `environment_variables`    
Les variables d'environnement pour le script hook bash. Utilisez le format suivant : `envName=envValue` avec les modèles de regex suivants :  
+ Pour les valeurs sans références : `^[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+=[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+$`
+ Pour les références statiques : `^[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+=\$\{[a-zA-Z0-9]+\.(properties|capabilities|requirements)(\.([a-zA-Z0-9\-_]+))+\}$`
+ Pour les références dynamiques : `^[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+=\$\{[a-zA-Z0-9]+\.(name|id|arn)\}$`
Assurez-vous que la `envName=envValue` valeur répond aux critères suivants :  
+ N'utilisez pas d'espaces.
+ **envName**Commencez par une lettre (A-Z ou a-z) ou un chiffre (0-9).
+ Ne commencez pas le nom de la variable d'environnement par les mots clés réservés AWS TNB suivants (sans distinction majuscules/minuscules) :
  + CONSTRUCTION DE CODE
  + TNB
  + MAISON
  + AWS
+ Vous pouvez utiliser n'importe quel nombre de lettres (A-Z ou a-z), de chiffres (0-9), de caractères spéciaux et pour `-` et`_`. **envName** **envValue**
+ Chaque variable d'environnement (each **envName** =**envValue**) doit comporter moins de 128 caractères.
Exemple : `A123-45xYz=Example_789`  
Obligatoire : non  
Type : liste

 `execution_role`    
Le rôle de l'exécution du hook.  
Obligatoire : oui  
Type : String

## exemple
<a name="hookdefinition-example"></a>

```
SampleHookScript:
  type: tosca.nodes.AWS.HookDefinition.Bash
  properties:
    implementation: "./hooks/myhook.sh"
    environment_variables:
      - "variable01=value01"
      - "variable02=value02"
    execution_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleHookPermission"
```