View a markdown version of this page

Trabalhar com modelos do CloudFormation - AWS CloudFormation

Trabalhar com modelos do CloudFormation

Um modelo do AWS CloudFormation define os recursos da AWS que você deseja criar, atualizar ou excluir como parte de uma pilha. Ele consiste em várias seções, mas a única seção necessária é a seção Resources, que deve declarar pelo menos um recurso.

É possível criar modelos usando os seguintes métodos:

  • AWS Infrastructure Composer – uma interface visual para criar modelos.

  • Editor de texto: escreva modelos diretamente na sintaxe JSON ou YAML.

  • Gerador de IaC: gere modelos com base em recursos provisionados em sua conta que não são gerenciados pelo CloudFormation no momento. O gerador de IaC funciona com uma grande variedade de tipos de recursos compatíveis com a API do Cloud Control na sua região.

Esta seção fornece um guia abrangente sobre como usar as diferentes seções de um modelo do CloudFormation e como começar a criar modelos de pilha. Ela abrange os seguintes tópicos:

Onde os modelos são armazenados

Bucket do Amazon S3

Você pode armazenar modelos do CloudFormation em um bucket do Amazon S3. Ao criar ou atualizar uma pilha, é possível especificar o URL do modelo no S3 em vez de carregá-lo diretamente.

Se você fizer upload de modelos diretamente por meio do Console de gerenciamento da AWS ou AWS CLI, um bucket do S3 será criado automaticamente para você. Para obter mais informações, consulte Criar uma pilha no console do CloudFormation.

Repositório Git

Com o Git sync, é possível armazenar modelos em um repositório Git. Ao criar ou atualizar uma pilha, é possível especificar o local do repositório Git e a ramificação que contém o modelo, em vez de carregá-lo diretamente ou fazer referência a um URL do S3. O CloudFormation monitora automaticamente o repositório e a ramificação especificados em busca de alterações no modelo. Para obter mais informações, consulte Criar uma pilha com base no código-fonte do repositório com a sincronização do Git.

Validar modelos

Valide seus modelos antes da implantação para que você possa encontrar e corrigir problemas antecipadamente. O serviço e as ferramentas do CloudFormation desta seção verificam partes diferentes de um modelo. Você pode usá-los em conjunto.

Você pode verificar se um modelo usa JSON ou YAML válidos com o comando da CLI validate-template ou especificando seu modelo no Console de gerenciamento da AWS. O console realiza essa verificação automaticamente. Essas verificações do serviço não executam as verificações adicionais de propriedade, segurança ou práticas recomendadas fornecidas pelas seguintes ferramentas:

  • CloudFormation Language Server: receba sugestões, documentação e feedback de validação enquanto escreve modelos em um editor.

  • CloudFormation Linter: verifique as propriedades dos recursos, os valores permitidos e os problemas comuns na linha de comando, em um editor ou em uma compilação automatizada.

  • Validação do CloudFormation: execute verificações locais e off-line a partir da linha de comando ou de uma biblioteca e adicione regras personalizadas do Rego ou Guard. O AWS CDK usa esse validador automaticamente depois de sintetizar seus modelos.

  • CloudFormation Guard: elabore as regras das políticas e compare os modelos com os requisitos de segurança, conformidade e governança da sua organização.

Use com agentes de codificação com IA

Os agentes de codificação com IA podem ajudar a criar, validar e solucionar problemas com os modelos do CloudFormation usando a habilidade aws-cloudformation do Agent Toolkit para AWS no GitHub. Para obter instruções de instalação de , consulte Guia de configuração do atendente.

Entender o escopo de validação

As ferramentas locais verificam o modelo e as regras que você fornece a elas. Elas não podem garantir que a implantação será bem-sucedida com os recursos, permissões e cotas atuais em uma Conta da AWS e uma Região da AWS. Antes da implantação, revise o conjunto de alterações e corrija todos os problemas relatados pelo serviço do CloudFormation.

Conceitos básicos de modelos

Para começar a criar um modelo do CloudFormation, siga estas etapas:

  1. Escolha recursos: identifique os recursos da AWS que deseja incluir em sua pilha, como instâncias do EC2, VPCs, grupos de segurança e muito mais.

  2. Escreva o modelo: escreva o modelo no formato JSON ou YAML, definindo os recursos e suas propriedades.

  3. Salvar o modelo: salve o modelo localmente com uma extensão de arquivo como: .json, .yaml ou .txt.

  4. Valide o modelo: valide o modelo usando os métodos descritos na seção Validar modelos.

  5. Crie uma pilha: crie uma pilha usando o modelo validado.

Planejar o uso da referência do modelo do CloudFormation

Ao criar seus modelos, você poderá encontrar documentação sobre a sintaxe detalhada de diferentes tipos de recursos na Referência de tipos de propriedades e recursos da AWS.

Geralmente, seus modelos de pilha exigirão funções intrínsecas para atribuir valores de propriedades que não estão disponíveis até o momento da execução, bem como atributos especiais para controlar o comportamento dos recursos. Ao escrever seu modelo, consulte os seguintes recursos para obter orientação:

  • Referência de função intrínseca: algumas funções intrínsecas comumente usadas incluem:

    • Ref: recupera o valor de um parâmetro ou o ID físico de um recurso.

    • Sub: substitui espaços reservados em strings por valores reais.

    • GetAtt: retorna o valor de um atributo de um recurso no modelo.

    • Join: une um conjunto de valores em uma única string.

  • Referência de atributo de recurso: alguns atributos especiais comumente usados incluem:

    • DependsOn: use esse atributo para especificar que um recurso deve ser criado depois de outro.

    • DeletionPolicy: use esse atributo para especificar como o CloudFormation deve lidar com a exclusão de um recurso.

Exemplos de modelo

O CloudFormation fornece modelos de pilha de código aberto que você pode usar para começar. Para obter mais informações, consulte Exemplos de modelos do CloudFormation no GitHub.

Tenha em mente que esses modelos não pretendem estar prontos para produção. Você deve dedicar algum tempo para aprender como eles funcionam, adaptá-los às suas necessidades e garantir que atendam aos padrões de conformidade da sua empresa.

Cada modelo nesse repositório passa pelas verificações do Linter do CloudFormation (cfn-lint) e também por um conjunto básico de regras do AWS CloudFormation Guard baseadas nos Center for Internet Security (CIS) Top 20, com exceção de algumas regras em que era importante manter a amostra concentrada em um único caso de uso.