

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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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.

# cfn-init
<a name="cfn-init"></a>

Dans un CloudFormation modèle, vous pouvez l'utiliser `AWS::CloudFormation::Init` dans la `Metadata` section d'une ressource Amazon EC2 pour définir des tâches d'initialisation. Pour de plus amples informations, veuillez consulter [`AWS::CloudFormation::Init`](aws-resource-init.md).

Le script d’assistance `cfn-init` lit les métadonnées du modèle depuis la clé `AWS::CloudFormation::Init` et agit en conséquence pour :
+ Récupérez et analysez les métadonnées depuis CloudFormation
+ Installation des packages
+ enregistrer les fichiers sur le disque ;
+ services Enable/disable and start/stop

Le script d’assistance `cfn-init` est généralement exécuté depuis les données utilisateur d’une instance Amazon EC2 ou d’un modèle de lancement.

Si vous utilisez des scripts d’assistance pour la première fois, nous vous recommandons de commencer par le tutoriel [Déploiement d’applications sur Amazon EC2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/deploying.applications.html) dans le *Guide de l’utilisateur AWS CloudFormation *.

**Topics**
+ [Syntaxe](#cfn-init-Syntax)
+ [Options](#cfn-init-options)
+ [Exemples](#cfn-init-examples)
+ [Ressources connexes](#cfn-init-related-resources)

**Note**  
Si vous utilisez `cfn-init` pour mettre à jour un fichier existant, il crée une copie de sauvegarde du fichier original dans le même répertoire, avec l’extension .bak. Par exemple, si vous mettez à jour `/{{path}}/{{to}}/{{file_name}}`, cette action génère deux fichiers : `/{{path}}/{{to}}/{{file_name}}.bak` inclut le contenu du fichier d'origine et `/{{path}}/{{to}}/{{file_name}}` contient le contenu mis à jour.

## Syntaxe
<a name="cfn-init-Syntax"></a>

```
cfn-init --stack|-s {{stack.name.or.id}} \
         --resource|-r {{logical.resource.id}} \
         --region {{region}} \
         --access-key {{access.key}} \
         --secret-key {{secret.key}} \
         --role {{rolename}} \
         --credential-file|-f {{credential.file}} \
         --configsets|-c {{config.sets}} \
         --url|-u {{service.url}} \
         --http-proxy {{HTTP.proxy}} \
         --https-proxy {{HTTPS.proxy}} \
         --verbose|-v
```

**Note**  
`cfn-init` ne nécessite pas d’informations d’identification, vous n’avez donc pas besoin d’utiliser les options `--access-key`, `--secret-key`, `--role` ou `--credential-file`. Toutefois, si aucune information d'identification n'est spécifiée, CloudFormation vérifie l'appartenance de la pile et limite la portée de l'appel à la pile à laquelle l'instance appartient. Pour de plus amples informations, veuillez consulter [Autorisations pour les scripts d'assistant](cfn-helper-scripts-reference.md#cfn-helper-scripts-reference-permissions).

## Options
<a name="cfn-init-options"></a>


| Nom | Description | Obligatoire | 
| --- | --- | --- | 
|  `-s, --stack`  | Nom de la pile ou ID de la pile.<br />*Type* : chaîne<br />*Par défaut* : aucun<br />*Exemple* : `--stack { "Ref" : "AWS::StackName" },` | Oui | 
|  `-r, --resource `  | ID de ressource logique de la ressource qui contient les métadonnées.<br />*Type* : chaîne<br />*Exemple* : `--resource WebServerHost` | Oui | 
|  `--region`  | Le point de terminaison CloudFormation régional à utiliser.<br />*Type* : chaîne<br />*Par défaut* : `us-east-1`<br />*Exemple* : `--region ", { "Ref" : "AWS::Region" },` | Non | 
|  `--access-key`  | AWS clé d'accès pour un compte autorisé `DescribeStackResource` à appeler CloudFormation. Le paramètre du fichier d'informations d'identification prévaut sur ce paramètre.<br />*Type* : chaîne | Non | 
|  `--secret-key`  | AWS clé d'accès secrète qui correspond à la clé AWS d'accès spécifiée.<br />*Type* : chaîne | Non | 
|  `--role`  | Nom d'un rôle IAM associé à l'instance.<br />*Type* : chaîne<br />Condition : le paramètre du fichier d'informations d'identification prévaut sur ce paramètre. | Non | 
|  `-f, --credential-file`  | Fichier qui contient une clé d'accès secrète et une clé d'accès. Le paramètre du fichier d'informations d'identification supplante les paramètres --role, --access-key et --secret-key.<br />*Type* : chaîne | Non | 
|  `-c, --configsets`  | Liste CSV de jeux de configuration à exécuter (dans l'ordre).<br />*Type* : chaîne<br />*Par défaut* : `default` | Non | 
|  `-u, --url`  | Le CloudFormation point de terminaison à utiliser.<br />*Type* : chaîne | Non | 
| `--http-proxy` | Proxy HTTP (non SSL). Utilisez le format suivant : `http://{{user:password}}@{{host}}:{{port}}`<br />*Type* : chaîne | Non | 
| `--https-proxy` | Proxy HTTPS. Utilisez le format suivant : `https://{{user:password}}@{{host}}:{{port}}`<br />*Type* : chaîne | Non | 
| `-v, --verbose` | Sortie détaillée. Cela est utile pour diagnostiquer des cas où `cfn-init` ne parvient pas à effectuer l’initialisation. Pour déboguer les événements d’initialisation, vous devez activer `DisableRollback`. Vous pouvez ensuite vous connecter en SSH à la console et lire les journaux à l’emplacement `/var/log/cfn-init.log`. Pour plus d’informations, consultez [Choisir comment gérer les échecs lors du provisionnement des ressources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-failure-options.html) dans le *Guide de l’utilisateur AWS CloudFormation *.  | Non | 
| `-h, --help` | Affiche le message d'aide, puis se ferme. | Non | 

## Exemples
<a name="cfn-init-examples"></a>

### Exemple Amazon Linux
<a name="w2aac32c27c21b3"></a>

Les exemples suivants montrent la propriété `UserData` d’une instance EC2 exécutant le configset `InstallAndRun` associé à la ressource `WebServerInstance`.

Pour inclure la dernière version, ajoutez `yum install -y aws-cfn-bootstrap` aux `UserData`.

#### JSON
<a name="cfn-init-example.json"></a>

Propriété `UserData` utilisant la fonction intrinsèque `Fn::Join`.

```
{
    "UserData": {
        "Fn::Base64": {
            "Fn::Join": [
                "",
                [
                    "#!/bin/bash -xe\n",
                    "",
                    "yum install -y aws-cfn-bootstrap",
                    "/opt/aws/bin/cfn-init -v ",
                    "         --stack ",
                    {
                        "Ref": "AWS::StackName"
                    },
                    "         --resource WebServerInstance ",
                    "         --configsets InstallAndRun ",
                    "         --region ",
                    {
                        "Ref": "AWS::Region"
                    },
                    "\n"
                ]
            ]
        }
    }
}
```

#### YAML
<a name="cfn-init-example.yaml"></a>

Propriété `UserData` utilisant la fonction intrinsèque `Fn::Sub`.

```
UserData:
  Fn::Base64: !Sub |
    #!/bin/bash -xe
    yum update -y aws-cfn-bootstrap
    # Install the files and packages from the metadata
    /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource WebServerInstance --configsets InstallAndRun --region ${AWS::Region}
```

## Ressources connexes
<a name="cfn-init-related-resources"></a>

Pour un tutoriel incluant un exemple de modèle, consultez [Déploiement d’applications sur Amazon EC2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/deploying.applications.html) dans le *Guide de l’utilisateur AWS CloudFormation *.

Windows*Par exemple, consultez la section [ CloudFormation Stacks Windows basés sur le bootstrap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-windows-stacks-bootstrapping.html) dans le guide de l'AWS CloudFormation utilisateur.*

Vous pouvez également visiter notre GitHub référentiel pour télécharger des [exemples de modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html#sample-templates) que nous utilisons`cfn-init`, notamment les modèles suivants.
+  [InstanceWithCfnInit.yaml](https://github.com/aws-cloudformation/aws-cloudformation-templates/blob/main/EC2/InstanceWithCfnInit.yaml) 
+  [AutoScalingRollingUpdates.yaml](https://github.com/aws-cloudformation/aws-cloudformation-templates/blob/main/AutoScaling/AutoScalingRollingUpdates.yaml) 

Par exemple, les modèles de pile LAMP qui utilisent`cfn-init`, voir [ec2-lamp-server](https://github.com/aws-samples/ec2-lamp-server) sur le site Web. GitHub 