

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.

# Extraits de modèle généraux
<a name="quickref-general"></a>

Les exemples suivants présentent différentes fonctionnalités du CloudFormation modèle qui ne sont pas spécifiques à un AWS service.

**Topics**
+ [

## Propriété UserData encodée en Base64
](#scenario-userdata-base64)
+ [

## Propriété UserData encodée en Base64 avec AccessKey et SecretKey
](#scenario-userdata-base64-with-keys)
+ [

## Section Parameters avec un seul paramètre de type String
](#scenario-one-string-parameter)
+ [

## Section Parameters avec le paramètre String et une contrainte d’expression régulière
](#scenario-constraint-string-parameter)
+ [

## Section Parameters avec paramètre numérique et contraintes MinValue et MaxValue
](#scenario-one-number-min-parameter)
+ [

## Parameterssection avec paramètre numérique avec AllowedValues contrainte
](#scenario-one-number-parameter)
+ [

## Section Parameters avec un seul paramètre de type CommaDelimitedList
](#scenario-one-list-parameter)
+ [

## Section Parameters avec une valeur de paramètre basée sur un pseudo-paramètre
](#scenario-one-pseudo-parameter)
+ [

## Section Mapping avec trois mappages
](#scenario-mapping-with-four-maps)
+ [

## Description basé sur une chaîne littérale
](#scenario-description-from-literal-string)
+ [

## Section Outputs avec une seule sortie de chaîne littérale
](#scenario-output-with-literal-string)
+ [

## Section Outputs avec une seule référence de ressource et une seule pseudo-référence
](#scenario-output-with-ref-and-pseudo-ref)
+ [

## Section Outputs avec une sortie basée sur une fonction, une chaîne littérale, une référence et un pseudo-paramètre
](#scenario-output-with-complex-spec)
+ [

## Version de format de modèle
](#scenario-format-version)
+ [

## propriétéAWS Tags
](#scenario-format-aws-tag)

## Propriété UserData encodée en Base64
<a name="scenario-userdata-base64"></a>

Cet exemple montre l’assemblage d’une propriété `UserData` à l’aide des fonctions `Fn::Base64` et `Fn::Join`. Les références `MyValue` et `MyName` sont des paramètres qui doivent être définis dans la section `Parameters` du modèle. La chaîne littérale `Hello World` n'est qu'une autre valeur que cet exemple transmet dans le cadre du paramètre `UserData`.

### JSON
<a name="quickref-general-example-1.json"></a>

```
1. "UserData" : {
2.     "Fn::Base64" : {
3.         "Fn::Join" : [ ",", [
4.             { "Ref" : "MyValue" },
5.             { "Ref" : "MyName" },
6.             "Hello World" ] ]
7.     }
8. }
```

### YAML
<a name="quickref-general-example-1.yaml"></a>

```
1. UserData:
2.   Fn::Base64: !Sub |
3.      Ref: MyValue
4.      Ref: MyName
5.      Hello World
```

## Propriété UserData encodée en Base64 avec AccessKey et SecretKey
<a name="scenario-userdata-base64-with-keys"></a>

Cet exemple montre l’assemblage d’une propriété `UserData` à l’aide des fonctions `Fn::Base64` et `Fn::Join`. Il inclut les informations `AccessKey` et `SecretKey`. Les références `AccessKey` et `SecretKey` sont des paramètres qui doivent être définis dans la section Parameters du modèle.

### JSON
<a name="quickref-general-example-2.json"></a>

```
1. "UserData" : {
2.     "Fn::Base64" : {
3.         "Fn::Join" : [ "", [
4.             "ACCESS_KEY=", { "Ref" : "AccessKey" },
5.             "SECRET_KEY=", { "Ref" : "SecretKey" } ]
6.         ]
7.     }
8. }
```

### YAML
<a name="quickref-general-example-2.yaml"></a>

```
1. UserData:
2.   Fn::Base64: !Sub |
3.      ACCESS_KEY=${AccessKey}
4.      SECRET_KEY=${SecretKey}
```

## Section Parameters avec un seul paramètre de type String
<a name="scenario-one-string-parameter"></a>

L'exemple suivant illustre la déclaration d'une section Parameters valide dans laquelle un seul paramètre de type `String` est déclaré.

### JSON
<a name="quickref-general-example-3.json"></a>

```
1. "Parameters" : {
2.     "UserName" : {
3.         "Type" : "String",
4.         "Default" : "nonadmin",
5.         "Description" : "Assume a vanilla user if no command-line spec provided"
6.     }
7. }
```

### YAML
<a name="quickref-general-example-3.yaml"></a>

```
1. Parameters:
2.   UserName:
3.     Type: String
4.     Default: nonadmin
5.     Description: Assume a vanilla user if no command-line spec provided
```

## Section Parameters avec le paramètre String et une contrainte d’expression régulière
<a name="scenario-constraint-string-parameter"></a>

L'exemple suivant illustre la déclaration d'une section Parameters valide dans laquelle un seul paramètre de type `String` est déclaré. La valeur `AdminUserAccount` par défaut du paramètre est de `admin`. La valeur de ce paramètre doit comprendre entre 1 et 16 caractères alphabétiques ou numériques, mais doit commencer par un caractère alphabétique.

### JSON
<a name="quickref-general-example-4.json"></a>

```
 1. "Parameters" : {
 2.     "AdminUserAccount": {
 3.       "Default": "admin",
 4.       "NoEcho": "true",
 5.       "Description" : "The admin account user name",
 6.       "Type": "String",
 7.       "MinLength": "1",
 8.       "MaxLength": "16",
 9.       "AllowedPattern" : "[a-zA-Z][a-zA-Z0-9]*"
10.     }
11. }
```

### YAML
<a name="quickref-general-example-4.yaml"></a>

```
1. Parameters:
2.   AdminUserAccount:
3.     Default: admin
4.     NoEcho: true
5.     Description: The admin account user name
6.     Type: String
7.     MinLength: 1
8.     MaxLength: 16
9.     AllowedPattern: '[a-zA-Z][a-zA-Z0-9]*'
```

## Section Parameters avec paramètre numérique et contraintes MinValue et MaxValue
<a name="scenario-one-number-min-parameter"></a>

L'exemple suivant illustre la déclaration d'une section Parameters valide dans laquelle un seul paramètre de type `Number` est déclaré. Le paramètre `WebServerPort` possède la valeur par défaut 80. Ses valeurs minimale et maximale s’élèvent respectivement à 1 et 65535.

### JSON
<a name="quickref-general-example-5.json"></a>

```
1. "Parameters" : {
2.     "WebServerPort": {
3.       "Default": "80",
4.       "Description" : "TCP/IP port for the web server",
5.       "Type": "Number",
6.       "MinValue": "1",
7.       "MaxValue": "65535"
8.     }
9. }
```

### YAML
<a name="quickref-general-example-5.yaml"></a>

```
1. Parameters:
2.   WebServerPort:
3.     Default: 80
4.     Description: TCP/IP port for the web server
5.     Type: Number
6.     MinValue: 1
7.     MaxValue: 65535
```

## Parameterssection avec paramètre numérique avec AllowedValues contrainte
<a name="scenario-one-number-parameter"></a>

L'exemple suivant illustre la déclaration d'une section Parameters valide dans laquelle un seul paramètre de type `Number` est déclaré. Le paramètre `WebServerPort` possède la valeur par défaut 80. Seules les valeurs 80 et 8888 sont autorisées.

### JSON
<a name="quickref-general-example-6.json"></a>

```
1. "Parameters" : {
2.     "WebServerPortLimited": {
3.       "Default": "80",
4.       "Description" : "TCP/IP port for the web server",
5.       "Type": "Number",
6.       "AllowedValues" : ["80", "8888"]
7.     }
8. }
```

### YAML
<a name="quickref-general-example-6.yaml"></a>

```
1. Parameters:
2.   WebServerPortLimited:
3.     Default: 80
4.     Description: TCP/IP port for the web server
5.     Type: Number
6.     AllowedValues:
7.     - 80
8.     - 8888
```

## Section Parameters avec un seul paramètre de type CommaDelimitedList
<a name="scenario-one-list-parameter"></a>

L’exemple suivant illustre une déclaration de section `Parameters` valide dans laquelle un seul paramètre de type `CommaDelimitedList` est déclaré. La propriété `NoEcho` est définie sur `TRUE`, ce qui masquera sa valeur par des astérisques (\$1\$1\$1\$1\$1) dans la sortie **describe-stacks**, à l’exception des informations stockées aux emplacements spécifiés ci-dessous.

**Important**  
L'utilisation de l'attribut `NoEcho` ne masque aucune information stockée dans les lieux suivants :  
La section des `Metadata` modèles. CloudFormation ne transforme, ne modifie ni n'expurge aucune information que vous incluez dans `Metadata` cette section. Pour de plus amples informations, veuillez consulter [Métadonnées](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html).
La section de modèle `Outputs` Pour de plus amples informations, veuillez consulter [Sorties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)
L’attribut `Metadata` d'une définition de ressource. Pour plus d'informations, voir la section consécrée à l'[Attribut `Metadata`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-metadata.html).
Nous vous recommandons vivement de ne pas utiliser ces mécanismes pour inclure des informations sensibles, telles que des mots de passe ou des secrets.

**Important**  
Plutôt que d'intégrer des informations sensibles directement dans vos CloudFormation modèles, nous vous recommandons d'utiliser des paramètres dynamiques dans le modèle de pile pour référencer les informations sensibles stockées et gérées à l'extérieur CloudFormation, par exemple dans le AWS Systems Manager Parameter Store ou AWS Secrets Manager.  
Pour de plus amples informations, veuillez consulter la bonne pratique [N'incorporez pas d'informations d'identification dans vos modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-best-practices.html#creds).

### JSON
<a name="quickref-general-example-7.json"></a>

```
1. "Parameters" : {
2.     "UserRoles" : {
3.         "Type" : "CommaDelimitedList",
4.         "Default" : "guest,newhire",
5.         "NoEcho" : "TRUE"
6.     }
7. }
```

### YAML
<a name="quickref-general-example-7.yaml"></a>

```
1. Parameters:
2.   UserRoles:
3.     Type: CommaDelimitedList
4.     Default: "guest,newhire"
5.     NoEcho: true
```

## Section Parameters avec une valeur de paramètre basée sur un pseudo-paramètre
<a name="scenario-one-pseudo-parameter"></a>

L'exemple suivant illustre les commandes qui utilisent les pseudo-paramètres `AWS::StackName` et `AWS::Region` dans les données utilisateur EC2. Pour plus d'informations sur les pseudo-paramètres, consultez [Obtenir des AWS valeurs à l'aide de pseudo-paramètres](pseudo-parameter-reference.md).

### JSON
<a name="quickref-general-example-10.json"></a>

```
 1.           "UserData"       : { "Fn::Base64" : { "Fn::Join" : ["", [
 2.              "#!/bin/bash -xe\n",
 3.              "yum install -y aws-cfn-bootstrap\n",
 4. 
 5.              "/opt/aws/bin/cfn-init -v ",
 6.              "         --stack ", { "Ref" : "AWS::StackName" },
 7.              "         --resource LaunchConfig ",
 8.              "         --region ", { "Ref" : "AWS::Region" }, "\n",
 9. 
10.              "/opt/aws/bin/cfn-signal -e $? ",
11.              "         --stack ", { "Ref" : "AWS::StackName" },
12.              "         --resource WebServerGroup ",
13.              "         --region ", { "Ref" : "AWS::Region" }, "\n"
14.         ]]}}
15.       }
```

### YAML
<a name="quickref-general-example-10.yaml"></a>

```
1. UserData:
2.   Fn::Base64: !Sub |
3.      #!/bin/bash -xe
4.      yum update -y aws-cfn-bootstrap
5.      /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --region ${AWS::Region}
6.      /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WebServerGroup --region ${AWS::Region}
```

## Section Mapping avec trois mappages
<a name="scenario-mapping-with-four-maps"></a>

L’exemple suivant illustre une déclaration de section `Mapping` valide qui contient trois mappages. Lorsque ce mappage est associé à une clé de mappage `Stop`, `SlowDown`, ou `Go`, il fournit les valeurs RVB assignées à l'attribut `RGBColor` correspondant.

### JSON
<a name="quickref-general-example-11.json"></a>

```
 1. "Mappings" : {
 2.     "LightColor" : {
 3.         "Stop" : {
 4.             "Description" : "red",
 5.             "RGBColor" : "RED 255 GREEN 0 BLUE 0"
 6.         },
 7.         "SlowDown" : {
 8.             "Description" : "yellow",
 9.             "RGBColor" : "RED 255 GREEN 255 BLUE 0"
10.         },
11.         "Go" : {
12.             "Description" : "green",
13.             "RGBColor" : "RED 0 GREEN 128 BLUE 0"
14.         }
15.     }
16. }
```

### YAML
<a name="quickref-general-example-11.yaml"></a>

```
 1. Mappings:
 2.   LightColor:
 3.     Stop:
 4.       Description: red
 5.       RGBColor: "RED 255 GREEN 0 BLUE 0"
 6.     SlowDown:
 7.       Description: yellow
 8.       RGBColor: "RED 255 GREEN 255 BLUE 0"
 9.     Go:
10.       Description: green
11.       RGBColor: "RED 0 GREEN 128 BLUE 0"
```

## Description basé sur une chaîne littérale
<a name="scenario-description-from-literal-string"></a>

L’exemple suivant illustre une déclaration de section `Description` valide dans laquelle la valeur est basée sur une chaîne littérale. Cet extrait peut s'appliquer à des modèles, des paramètres, des ressources, des propriétés ou des sorties.

### JSON
<a name="quickref-general-example-8.json"></a>

```
1. "Description" : "Replace this value"
```

### YAML
<a name="quickref-general-example-8.yaml"></a>

```
1. Description: "Replace this value"
```

## Section Outputs avec une seule sortie de chaîne littérale
<a name="scenario-output-with-literal-string"></a>

Cet exemple illustre une affectation de sortie basée sur une chaîne littérale.

### JSON
<a name="quickref-general-example-12.json"></a>

```
1. "Outputs" : {
2.     "MyPhone" : {
3.         "Value" : "Please call 555-5555",
4.         "Description" : "A random message for aws cloudformation describe-stacks"
5.     }
6. }
```

### YAML
<a name="quickref-general-example-12.yaml"></a>

```
1. Outputs:
2.   MyPhone:
3.     Value: Please call 555-5555
4.     Description: A random message for aws cloudformation describe-stacks
```

## Section Outputs avec une seule référence de ressource et une seule pseudo-référence
<a name="scenario-output-with-ref-and-pseudo-ref"></a>

Cet exemple illustre une section `Outputs` avec deux affectations de sortie. L'une est basée sur une ressource, et l'autre sur une pseudo-référence.

### JSON
<a name="quickref-general-example-13.json"></a>

```
1. "Outputs" : {
2.    "SNSTopic" : { "Value" : { "Ref" : "MyNotificationTopic" } },
3.    "StackName" : { "Value" : { "Ref" : "AWS::StackName" } }
4. }
```

### YAML
<a name="quickref-general-example-13.yaml"></a>

```
1. Outputs:
2.   SNSTopic:
3.     Value: !Ref MyNotificationTopic
4.   StackName:
5.     Value: !Ref AWS::StackName
```

## Section Outputs avec une sortie basée sur une fonction, une chaîne littérale, une référence et un pseudo-paramètre
<a name="scenario-output-with-complex-spec"></a>

Cet exemple illustre une section Outputs avec une seule affectation de sortie. La fonction Join est utilisée pour concaténer la valeur, à l'aide d'un signe pour cent comme délimiteur.

### JSON
<a name="quickref-general-example-14.json"></a>

```
1. "Outputs" : {
2.     "MyOutput" : {
3.         "Value" : { "Fn::Join" :
4.             [ "%", [ "A-string", {"Ref" : "AWS::StackName" } ] ]
5.         }
6.     }
7. }
```

### YAML
<a name="quickref-general-example-14.yaml"></a>

```
1. Outputs:
2.   MyOutput:
3.     Value: !Join [ %, [ 'A-string', !Ref 'AWS::StackName' ]]
```

## Version de format de modèle
<a name="scenario-format-version"></a>

L’extrait suivant illustre une déclaration de section `AWSTemplateFormatVersion` valide.

### JSON
<a name="quickref-general-example-9.json"></a>

```
1. "AWSTemplateFormatVersion" : "2010-09-09"
```

### YAML
<a name="quickref-general-example-9.yaml"></a>

```
1. AWSTemplateFormatVersion: '2010-09-09'
```

## propriétéAWS Tags
<a name="scenario-format-aws-tag"></a>

Cet exemple montre une AWS `Tags` propriété. Vous devez spécifier cette propriété dans la section Propriétés d'une ressource. Lorsque la ressource est créée, les balises que vous déclarez lui sont ajoutées.

### JSON
<a name="quickref-general-example-15.json"></a>

```
 1. "Tags" : [
 2.       {
 3.         "Key" : "keyname1",
 4.         "Value" : "value1"
 5.       },
 6.       {
 7.         "Key" : "keyname2",
 8.         "Value" : "value2"
 9.       }
10.     ]
```

### YAML
<a name="quickref-general-example-15.yaml"></a>

```
1. Tags: 
2.   - 
3.     Key: "keyname1"
4.     Value: "value1"
5.   - 
6.     Key: "keyname2"
7.     Value: "value2"
```