

# Validação de modelos com `cfn-lint`
<a name="cfn-lint"></a>

O CloudFormation Linter (`cfn-lint`) compara os modelos JSON e YAML com os [esquemas do provedor de recursos do CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/resource-type-schemas.html) e com as regras adicionais. Ele pode encontrar propriedades de recursos inválidas, valores incompatíveis e problemas comuns antes do envio de um modelo para o CloudFormation.

O código-fonte, as notas da versão, as configurações e a lista completa de regras estão disponíveis no [repositório cfn-lint no GitHub](https://github.com/aws-cloudformation/cfn-lint).

**Topics**
+ [Instalar o `cfn-lint`](#cfn-lint-install)
+ [Executar `cfn-lint`](#cfn-lint-run)
+ [Configurar verificações](#cfn-lint-configure)
+ [Incluir `cfn-lint` em seu fluxo de trabalho](#cfn-lint-integrate)

## Instalar o `cfn-lint`
<a name="cfn-lint-install"></a>

Instale `cfn-lint` do Python Package Index (PyPI):

```
python3 -m pip install cfn-lint
```

No macOS, você também pode instalá-lo com o Homebrew:

```
brew install cfn-lint
```

Para saber as versões compatíveis do Python e outros métodos de instalação, consulte as [instruções de instalação](https://github.com/aws-cloudformation/cfn-lint#install) no GitHub.

## Executar `cfn-lint`
<a name="cfn-lint-run"></a>

Aprovar um ou mais caminhos de modelo no comando:

```
cfn-lint template.yaml
cfn-lint template-one.yaml template-two.json
```

Para verificar modelos em mais de uma Região da AWS, use a opção `--regions`:

```
cfn-lint --regions us-east-1 us-west-2 -- template.yaml
```

O comando retorna um código de saída diferente de zero quando encontra problemas. Você pode usar esse comportamento para interromper uma compilação automatizada quando um modelo não for aprovado nas verificações selecionadas.

## Configurar verificações
<a name="cfn-lint-configure"></a>

Use um arquivo `.cfnlintrc`, `.cfnlintrc.yaml` ou `.cfnlintrc.yml` para manter as configurações do projeto com seus modelos. Você pode usar esse arquivo para selecionar modelos, incluir ou ignorar verificações, escolher Regiões da AWS e configurar o comportamento das regras. Para conhecer todas as configurações, consulte [Arquivo de configuração](https://github.com/aws-cloudformation/cfn-lint#config-file) na documentação do projeto no GitHub.

## Incluir `cfn-lint` em seu fluxo de trabalho
<a name="cfn-lint-integrate"></a>

Você pode executar `cfn-lint` a partir de editores compatíveis, seja automaticamente antes de um commit do Git ou como parte de uma compilação automatizada. O CloudFormation Language Server também usa `cfn-lint` para mostrar os problemas enquanto você digita. Para saber a configuração do Language Server, consulte [CloudFormation Language Server](ide-extension.md).

Para saber os plug-ins do editor, o GitHub Actions, a configuração pré-confirmação, as regras personalizadas e obter mais exemplos, consulte a [documentação do projeto cfn-lint](https://github.com/aws-cloudformation/cfn-lint) no GitHub.