Validação de modelos com cloudformation-validate
O projeto cloudformation-validate
A ferramenta inclui as regras e as definições de recursos do CloudFormation de que precisa para que seja executada sem acesso à rede ou credenciais da AWS após a instalação.
Tópicos
Escolha um método de validação
-
Linha de comando: execute
cfn-validatepara verificar um modelo ou todos os modelos em um diretório de um terminal ou compilação automatizada. -
Biblioteca: adicione o validador a uma aplicação de Rust, Node.js, Python, Go ou JVM e processe os resultados em seu código.
-
AWS CDK: valide os modelos automaticamente após a sintetização pelo CDK.
-
Regras personalizadas: adicione verificações escritas na linguagem de regras do CEL, Rego ou Guard. Para ver exemplos e formatos de regras compatíveis, consulte a Referência de regras personalizadas
no GitHub. Para obter informações sobre a sintaxe de regras do Guard, consulte Validação de modelos com o Guard neste guia.
Instalação da ferramenta de linha de comando
Abra a versão mais recente do cfn-validatecfn-validate para seu sistema operacional e processador. Siga o guia de instalaçãocfn-validate, adicioná-lo ao seu PATH e verificar o arquivo baixado.
Executar validação
O comando usa a seguinte sintaxe:
cfn-validateTEMPLATE_OR_DIRECTORY[OPTIONS]
Verifique um modelo:
cfn-validate template.yaml
Aprove um diretório para verificar de forma recursiva cada arquivo .yaml, .yml e .json:
cfn-validate ./templates/
O comando grava um relatório de validação JSON estruturado no resultado padrão. Use --format standard para resultado compacto ou --format detailed para o relatório detalhado padrão.
O comando informa 0 quando não encontra nenhum erro ou diagnóstico fatal, 1 quando encontra um erro ou diagnóstico fatal e 2 em caso de erro de uso ou inicialização como, por exemplo, uma opção inválida ou um arquivo que não existe.
Para conhecer todos os mecanismos, filtros, formatos de resultados e parâmetros, consulte a Referência da CLI cfn-validate
Adicionar regras personalizadas
Use --rule-source para carregar um arquivo de regras do Rego ou CEL personalizado. Use --guard-rule-source para carregar um arquivo ou diretório de regras do Guard. Você pode repetir qualquer uma das opções para carregar várias fontes de regras:
cfn-validate template.yaml --rule-source ./rules/my-rule.rego cfn-validate template.yaml --guard-rule-source ./guard-rules/
Para ver exemplos e formatos de regras, consulte a Referência de regras personalizadas
Incorporar a biblioteca de validação
Instale o pacote publicado para sua linguagem de programação para executar as mesmas verificações off-line da sua aplicação. Crie um mecanismo de validação uma vez, reutilize-o para vários modelos e processe os diagnósticos estruturados produzidos para cada modelo. Você também pode configurar regras personalizadas do CEL, Rego ou Guard por meio da API da biblioteca.
| Linguagem | Pacote publicado | API e exemplos |
|---|---|---|
| Rust | cloudformation-validate em crates.io |
API e exemplos do Rust |
| Node.js | @aws/cloudformation-validate em npm |
API e exemplos do Node.js |
| Python | cloudformation-validate em PyPI |
API e exemplos do Python |
| Go | Módulo CloudFormation Validate Go |
API e exemplos do Go |
| JVM (Java ou Kotlin) | software.amazon.cloudformation:cloudformation-validate no Maven Central |
API e exemplos no JVM |
Para obter instruções de instalação e conhecer as plataformas compatíveis, consulte o guia de instalação da vinculação de linguagem
Para obter exemplos completos em todas as linguagens e links para cada guia de API, consulte Incorporação como uma biblioteca
Use o com o AWS CDK
Se você usar AWS CDK, não precisará instalar o validador separadamente. A biblioteca do constructo do AWS CDK inclui um CloudFormationValidatePlugin padrão que executa as mesmas verificações automaticamente após sintetizar seus modelos do CloudFormation.
cdk synth
O CDK relata possíveis falhas de implantação e descobertas de acordo com as práticas recomendadas com seus resultados de validação. Você pode configurar explicitamente CloudFormationValidatePlugin quando quiser adicionar regras personalizadas do Rego ou Guard.
Para saber sobre configuração de plug-ins, confirmações e relatórios de validação, consulte Validação de modelos e políticas na Referência da API do AWS CDK.
Entender o escopo de validação
Para saber as limitações da validação local e as etapas a serem seguidas antes da implantação, consulte Entender o escopo de validação.