Visão geral de modelos - AWS CloudFormation

Visão geral de modelos

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.

O arquivo de modelo segue regras de formatação específicas usando o padrão JavaScript Object Notation (JSON) ou YAML. O JSON é mais detalhado e rígido, enquanto o YAML é mais legível e flexível. Para obter mais informações, consulte Formatos de modelo.

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 AWS Management Console 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.

Validar modelos

Validação de sintaxe

É possível verificar a sintaxe JSON ou YAML do seu modelo usando o comando validate-template da CLI ou especificando o modelo no console. O console realiza a validação automaticamente. No entanto, esses métodos apenas verificam a sintaxe do seu modelo e não validam os valores de propriedade especificados para um recurso.

Ferramentas adicionais de validação

Para validações mais complexas e verificações de melhores práticas, é possível usar ferramentas adicionais, como:

  • CloudFormation Linter (cfn-lint): valide modelos em relação aos esquemas do provedor de recursos. Isso inclui verificar se foram usados valores válidos para propriedades dos recursos e práticas recomendadas.

  • CloudFormation Rain (rain fmt): formate seus modelos do CloudFormation em um padrão consistente ou reformate um modelo de JSON para YAML (ou YAML para JSON). Ele preserva os comentários ao usar o YAML e muda o uso de funções intrínsecas para a sintaxe curta sempre que possível.

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. Valide o modelo: valide o modelo usando os métodos descritos na seção Validar modelos.

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

Recursos adicionais

  • O Referência de tipos de propriedades e recursos da AWS fornece a sintaxe para declarar diferentes tipos de recursos.

  • A Referência à função intrínseca documenta funções que você pode usar para realizar tarefas, como unir strings ou fazer referência a outros recursos em seus modelos. As 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.

  • A Referência de atributos de recursos documenta os atributos especiais que podem ser usados, incluindo:

    • 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.

    • Metadata: use esse atributo para especificar dados estruturados com um recurso.