

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.

# Validez les modèles avec `cloudformation-validate`
<a name="cloudformation-validate"></a>

Le [`cloudformation-validate` projet open source ](https://github.com/aws-cloudformation/cloudformation-validate) vérifie les CloudFormation modèles JSON et YAML localement et est disponible sur. GitHub Il peut détecter une structure de modèle non valide, des références erronées, des problèmes de sécurité et des problèmes liés aux meilleures pratiques. Chaque résultat inclut le problème, sa gravité et sa localisation dans le modèle.

L'outil inclut les règles et les définitions de CloudFormation ressources dont il a besoin, de sorte qu'il s'exécute sans accès réseau ni AWS informations d'identification après l'installation.

**Topics**
+ [Choisissez une méthode de validation](#cloudformation-validate-ways-to-use)
+ [Installation de l'outil de ligne de commande](#cloudformation-validate-install)
+ [Exécuter la validation](#cloudformation-validate-run)
+ [Ajouter des règles personnalisées](#cloudformation-validate-custom-rules)
+ [Intégrer la bibliothèque de validation](#cloudformation-validate-library)
+ [A utiliser avec AWS CDK](#cloudformation-validate-cdk)
+ [Comprendre la portée de la validation](#cloudformation-validate-scope)

## Choisissez une méthode de validation
<a name="cloudformation-validate-ways-to-use"></a>
+ **Ligne de commande ** — Exécutez `cfn-validate` pour vérifier un modèle ou tous les modèles d'un répertoire à partir d'un terminal ou d'une version automatique.
+ **Bibliothèque ** : ajoutez le validateur à une application Rust Node.js, Python, Go ou JVM et traitez les résultats dans votre code.
+ **AWS CDK**— Validez les modèles automatiquement une fois que CDK les a synthétisés.
+ **Règles personnalisées ** : ajoutez des contrôles écrits dans le langage des règles CEL, Rego ou Guard. Pour obtenir des exemples et des formats de règles pris en charge, consultez la référence des règles [ personnalisées ](https://github.com/aws-cloudformation/cloudformation-validate/blob/main/src/CUSTOM_RULES.md) sur GitHub. Pour la syntaxe des règles Guard, consultez [Validez les modèles avec Guard](cloudformation-guard.md) ce guide.

## Installation de l'outil de ligne de commande
<a name="cloudformation-validate-install"></a>

Ouvrez la [ dernière `cfn-validate` version ](https://github.com/aws-cloudformation/cloudformation-validate/releases/latest) GitHub et téléchargez le `cfn-validate` fichier correspondant à votre système d'exploitation et à votre processeur. Suivez [ le guide ](https://github.com/aws-cloudformation/cloudformation-validate/blob/main/INSTALLATION.md) d'installation GitHub pour renommer le fichier`cfn-validate`, l'ajouter à votre `PATH` fichier et vérifier le fichier téléchargé.

## Exécuter la validation
<a name="cloudformation-validate-run"></a>

La commande utilise la syntaxe suivante :

```
cfn-validate {{TEMPLATE_OR_DIRECTORY}} [OPTIONS]
```

Cochez un modèle :

```
cfn-validate template.yaml
```

Transmettez un répertoire pour vérifier récursivement tous les `.json` fichiers `.yaml``.yml`,, et :

```
cfn-validate ./templates/
```

La commande écrit un rapport de validation JSON structuré sur la sortie standard. `--format standard`Utilisez-le pour une sortie compacte ou `--format detailed` pour le rapport détaillé par défaut.

La commande est `0` renvoyée lorsqu'elle ne trouve aucune erreur ou aucun diagnostic fatal, `1` lorsqu'elle détecte une erreur ou un diagnostic fatal, et en cas `2` d'erreur d'utilisation ou d'initialisation, telle qu'une option non valide ou un fichier qui n'existe pas.

Pour tous les moteurs, filtres, formats de sortie et paramètres, consultez la référence [`cfn-validate` CLI ](https://github.com/aws-cloudformation/cloudformation-validate/blob/main/src/cfn-validate/README.md) sur GitHub.

## Ajouter des règles personnalisées
<a name="cloudformation-validate-custom-rules"></a>

Permet `--rule-source` de charger un fichier de règles Rego ou CEL personnalisé. Permet `--guard-rule-source` de charger un fichier ou un répertoire de règles Guard. Vous pouvez répéter l'une ou l'autre des options pour charger plusieurs sources de règles :

```
cfn-validate template.yaml --rule-source ./rules/my-rule.rego
cfn-validate template.yaml --guard-rule-source ./guard-rules/
```

Pour des formats de règles et des exemples, voir Référence des règles [ personnalisées ](https://github.com/aws-cloudformation/cloudformation-validate/blob/main/src/CUSTOM_RULES.md) sur GitHub.

## Intégrer la bibliothèque de validation
<a name="cloudformation-validate-library"></a>

Installez le package publié pour votre langage de programmation afin d'exécuter les mêmes vérifications hors ligne depuis votre application. Créez un moteur de validation une seule fois, réutilisez-le pour plusieurs modèles et traitez les diagnostics structurés renvoyés pour chaque modèle. Vous pouvez également configurer des règles CEL, Rego ou Guard personnalisées via l'API de la bibliothèque.


| Language | Package publié | API et exemples | 
| --- | --- | --- | 
| Rust | [`cloudformation-validate`sur crates.io ](https://crates.io/crates/cloudformation-validate) | [API Rust et exemples ](https://github.com/aws-cloudformation/cloudformation-validate/blob/main/src/bindings-rust/README.md) | 
| Node.js | [`@aws/cloudformation-validate`sur npm ](https://www.npmjs.com/package/@aws/cloudformation-validate) | [Node.js API et exemples ](https://github.com/aws-cloudformation/cloudformation-validate/blob/main/src/bindings-wasm/README.md) | 
| Python | [`cloudformation-validate`sur PyPI ](https://pypi.org/project/cloudformation-validate/) | [API Python et exemples ](https://github.com/aws-cloudformation/cloudformation-validate/blob/main/src/bindings-python/README.md) | 
| Go | [CloudFormation Module Valider Go ](https://pkg.go.dev/github.com/aws-cloudformation/cloudformation-validate/src/bindings-go/go) | [API Go et exemples ](https://github.com/aws-cloudformation/cloudformation-validate/blob/main/src/bindings-go/README.md) | 
| JVM (Java ou Kotlin) | [`software.amazon.cloudformation:cloudformation-validate`sur Maven Central ](https://central.sonatype.com/artifact/software.amazon.cloudformation/cloudformation-validate) | [API JVM et exemples ](https://github.com/aws-cloudformation/cloudformation-validate/blob/main/src/bindings-jvm/README.md) | 

Pour les instructions d'installation et les plates-formes prises en charge, consultez le guide d'installation [ linguistique](https://github.com/aws-cloudformation/cloudformation-validate/blob/main/INSTALLATION.md#language-bindings).

Pour des exemples complets dans toutes les langues et des liens vers chaque guide d'API, voir [ Intégrer en tant que bibliothèque ](https://github.com/aws-cloudformation/cloudformation-validate#embedding-as-a-library) dans la documentation du projet sur GitHub.

## A utiliser avec AWS CDK
<a name="cloudformation-validate-cdk"></a>

Si vous l'utilisez AWS CDK, vous n'avez pas besoin d'installer le validateur séparément. La bibliothèque de AWS CDK construction inclut une valeur par défaut `CloudFormationValidatePlugin` qui exécute automatiquement les mêmes vérifications après la synthèse de vos CloudFormation modèles.

```
cdk synth
```

CDK signale les éventuels échecs de déploiement et les résultats des meilleures pratiques avec ses résultats de validation. Vous pouvez configurer explicitement le `CloudFormationValidatePlugin` moment où vous souhaitez ajouter des règles Rego ou Guard personnalisées.

Pour la configuration des plugins, les accusés de réception et les rapports de validation, consultez la section Validation des [ modèles et des politiques ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib-readme.html#template-and-policy-validation) dans la référence de l'*AWS CDK API. *

## Comprendre la portée de la validation
<a name="cloudformation-validate-scope"></a>

Pour connaître les limites de la validation locale et les étapes à suivre avant le déploiement, consultez[Comprendre la portée de la validation](template-guide.md#template-validation-scope).