

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.

# Utilisez des paramètres pour spécifier les valeurs des modules
<a name="module-using-params"></a>

Dans CloudFormation, vous pouvez utiliser les paramètres du modèle pour personnaliser vos piles en fournissant des valeurs d'entrée lors de la création ou de la mise à jour des piles. Ces paramètres vous permettent de modifier certains aspects de la pile en fonction de vos besoins. Pour plus d’informations sur la définition des paramètres de modèle, consultez [CloudFormation Parameterssyntaxe du modèle](parameters-section-structure.md).

De même, les modules peuvent également avoir des paramètres. Ces paramètres de module vous permettent d’entrer des valeurs personnalisées dans le module à partir du modèle (ou d’un autre module) qui l’utilise. Le module peut ensuite utiliser ces valeurs personnalisées pour définir les valeurs de propriété des ressources qu’il contient.

Vous pouvez également définir des paramètres de modèle qui définissent les propriétés du module, afin de pouvoir saisir des valeurs qui seront transmises au module au moment de l’opération de pile. 

Si un module contient un module imbriqué qui possède ses propres paramètres de module, vous pouvez soit :
+ spécifier les valeurs des paramètres du module imbriqué directement dans le module parent ;
+ définir les paramètres correspondants du module dans le module parent qui permettent de configurer les paramètres du module imbriqué avec le modèle (ou le module) dans lequel le module parent est contenu.

## Utilisation des paramètres de modèle pour spécifier les valeurs des paramètres de module
<a name="module-using-params-example-1"></a>

L'exemple suivant montre comment définir des paramètres de modèle qui transmettent des valeurs à un module.

Ici, le modèle contenant `My::S3::SampleBucket::MODULE` définit un paramètre de modèle, `BucketName`, qui permet à l’utilisateur de spécifier un nom de compartiment S3 pendant l’opération de pile.

```
# Template containing My::S3::SampleBucket::MODULE
Parameters:
  BucketName:
    Description: Name for your sample bucket
    Type: String
Resources:
  MyBucket:
    Type: 'My::S3::SampleBucket::MODULE'
    Properties:
      BucketName: !Ref BucketName
```

## Spécification des propriétés sur les ressources d'un module enfant à partir du module parent
<a name="module-using-params-example-2"></a>

L'exemple suivant illustre comment spécifier des valeurs de paramètre dans un module imbriqué dans un autre module.

Ce premier module, `My::S3::SampleBucketPrivate::MODULE`, sera le module enfant. Il définit deux paramètres : `BucketName` et `AccessControl`. Les valeurs spécifiées pour ces paramètres permettent de spécifier les propriétés `BucketName` et `AccessControl` de la ressource `AWS::S3::Bucket` contenue par le module. Ci-dessous se trouve le fragment de modèle pour `My::S3::SampleBucketPrivate::MODULE`.

```
# My::S3::SampleBucketPrivate::MODULE
AWSTemplateFormatVersion: 2010-09-09
Description: A sample S3 Bucket with Versioning and DeletionPolicy.
Parameters:
  BucketName:
    Description: Name for the bucket
    Type: String
  AccessControl:
    Description: AccessControl for the bucket
    Type: String
Resources:
  S3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Ref BucketName
      AccessControl: !Ref AccessControl
      DeletionPolicy: Retain
      VersioningConfiguration:
        Status: Enabled
```

Ensuite, le module précédent est imbriqué dans un module parent, `My::S3::SampleBucket::MODULE`. Le module parent, `My::S3::SampleBucket::MODULE`, définit les paramètres du module enfant de la manière suivante :
+ Il définit le paramètre `AccessControl` de `My::S3::SampleBucketPrivate::MODULE` à `Private`.
+ Pour `BucketName`, il définit un paramètre de module qui permettra de spécifier le nom du compartiment dans le modèle (ou le module) qui contient `My::S3::SampleBucket::MODULE`.

```
# My::S3::SampleBucket::MODULE
AWSTemplateFormatVersion: 2010-09-09
Description: A sample S3 Bucket. With Private AccessControl.
Parameters:
  BucketName:
    Description: Name for your sample bucket
    Type: String
Resources:
  MyBucket:
    Type: 'My::S3::SampleBucketPrivate::MODULE'
    Properties:
      BucketName: !Ref BucketName
      AccessControl: Private
```

## Spécification des contraintes pour les paramètres de module
<a name="modules-using-parameters-constraints"></a>

Les paramètres du module ne prennent pas en charge l’application de Type ou Contrainte. Pour effectuer une vérification des contraintes sur un paramètre de module, créez un paramètre de modèle avec les contraintes souhaitées. Référencez ensuite ce paramètre de modèle dans le paramètre de votre module. Pour plus d’informations sur la définition des paramètres de modèle, consultez [CloudFormation Parameterssyntaxe du modèle](parameters-section-structure.md).