Anatomia do modelo
Um modelo é um arquivo de texto formatado em JSON ou YAML que descreve a sua infraestrutura da AWS. Os exemplos a seguir mostram uma estrutura de modelo do AWS CloudFormation e suas seções.
JSON
O exemplo a seguir mostra um modelo de estilhaço formatado em JSON.
{ "AWSTemplateFormatVersion" : "
version date
", "Description" : "JSON string
", "Metadata" : {template metadata
}, "Parameters" : {set of parameters
}, "Rules" : {set of rules
}, "Mappings" : {set of mappings
}, "Conditions" : {set of conditions
}, "Transform" : {set of transforms
}, "Resources" : {set of resources
}, "Outputs" : {set of outputs
} }
YAML
O exemplo a seguir mostra um modelo de estilhaço formatado em YAML.
--- AWSTemplateFormatVersion: "
version date
" Description:String
Metadata:template metadata
Parameters:set of parameters
Rules:set of rules
Mappings:set of mappings
Conditions:set of conditions
Transform:set of transforms
Resources:set of resources
Outputs:set of outputs
Seções do modelo
Os modelos incluem várias seções principais. A seção Resources
é a única seção necessária. Algumas seções em um modelo podem ser em qualquer ordem. No entanto, à medida que você cria o modelo, pode ser útil usar a ordem lógica da lista a seguir, porque valores em uma seção podem fazer referência a valores de uma seção anterior.
- Format Version (opcional)
-
A versão do modelo do AWS CloudFormation com a qual o modelo está em conformidade. A versão do formato do modelo não é a mesma que a versão da API ou da WSDL. A template format version pode ser alterada independentemente das versões da API e da WSDL.
- Description (opcional)
-
Uma sequência de texto que descreve o modelo. Esta seção deve sempre seguir a seção template format version.
- Metadata (opcional)
-
Os objetos que fornecem informações adicionais sobre o modelo.
- Parameters (opcional)
-
Os valores a serem passados para seu modelo em tempo de execução (ao criar ou atualizar uma pilha). Você pode fazer referência a parâmetros nas seções
Resources
eOutputs
do modelo. - Rules (opcional)
-
Valida um parâmetro ou uma combinação de parâmetros repassados para um modelo durante uma criação de pilha ou atualização de pilha.
- Mappings (opcional)
-
Um mapeamento de chaves e valores associados que você pode usar para especificar valores de parâmetros condicionais, semelhante a uma tabela de pesquisa. Você pode vincular uma chave a um valor correspondente usando a função intrínseca Fn::FindInMap nas seções
Resources
eOutputs
. - Conditions (opcional)
-
As condições que controlam se determinados recursos são criados ou se determinadas propriedades de recursos são atribuídas a um valor durante a criação ou a atualização da pilha. Por exemplo, condicionalmente, você pode criar um recurso que depende de se a pilha é de um ambiente de teste ou de produção.
- Transform (opcional)
-
Em aplicativos sem servidor (também chamados de aplicativos baseados no Lambda), especifique a versão do AWS Serverless Application Model (AWS SAM)
a ser usada. Quando você especifica uma transformação, você pode usar a sintaxe AWS SAM para declarar recursos em seu modelo. O modelo define a sintaxe que você pode usar e como ela é processada. Você também pode usar transformações
AWS::Include
para trabalhar com trechos de modelos que são armazenados separadamente do modelo principal do AWS CloudFormation. Você pode armazenar seus arquivos de trechos em um bucket do Amazon S3 e, em seguida, reutilizar as funções em vários modelos. - Resources (obrigatório)
-
Especifica os recursos da pilha e suas propriedades, como uma instância do Amazon Elastic Compute Cloud ou um bucket do Amazon Simple Storage Service. Você pode fazer referência a recursos nas seções
Resources
eOutputs
do modelo. - Outputs (opcional)
-
Descreve os valores que são retornados sempre que você visualiza as propriedades da pilha. Por exemplo, você pode declarar uma saída para o nome de um bucket do S3 e, em seguida, chamar o comando da
aws cloudformation describe-stacks
AWS CLI para visualizar o nome.