Ícone do site Paulo Sant´anna

AWS CloudFormation — Utilizando parâmetros no template YAML

Olá pessoal,

A dica de hoje é para quem deseja reutilizar um template do AWS CloudFormation sem precisar editar o código a cada implantação. Com a seção Parameters, podemos informar valores na criação ou atualização da stack, como a imagem da máquina e o tipo de instância EC2.

Isso facilita e muito o uso do mesmo template em diferentes cenários, mantendo as configurações variáveis separadas da definição dos recursos.

Como definir parâmetros no YAML

No exemplo abaixo, definimos dois parâmetros: AmiID, para selecionar uma Amazon Machine Image (AMI), e TipoInstancia, para escolher o tamanho da instância:

AWSTemplateFormatVersion: '2010-09-09'
Description: Exemplo de parametros para uma instancia EC2
Parameters:
AmiID:
Type: AWS::EC2::Image::Id
Description: Selecione uma AMI valida na regiao utilizada
TipoInstancia:
Type: String
Description: Informe o tipo da instancia EC2
Default: t3.micro
AllowedValues:
- t3.micro
- t3.small
- t3.medium
Resources:
MinhaInstancia:
Type: AWS::EC2::Instance
Properties:
ImageId: !Ref AmiID
InstanceType: !Ref TipoInstancia

Esse exemplo mostra a estrutura básica. Para utilizá-lo no seu ambiente, complemente as configurações de rede e segurança e escolha uma AMI compatível com a família de instâncias.

Entendendo os campos

Cada parâmetro possui um nome e atributos que definem seu comportamento:

No parâmetro AmiID, utilizamos um tipo específico da AWS. Como não há Default, será necessário informar uma imagem na criação da stack.

Já TipoInstancia utiliza String, tem t3.micro como padrão e permite apenas as três opções listadas. A expressão !Ref recupera o valor do parâmetro e o aplica à propriedade correspondente do recurso.

Como utilizar na criação da stack

Ao carregar o template no console do CloudFormation, os parâmetros aparecem na etapa de preenchimento dos detalhes da stack. Basta selecionar a AMI e escolher o tipo de instância desejado.

Assim, você pode criar uma stack com t3.micro e outra com t3.small, usando o mesmo arquivo YAML. A lista do exemplo é ilustrativa: ajuste as opções conforme os requisitos da aplicação e a disponibilidade na região.

Antes de aplicar novos valores a uma stack existente, confira o impacto nas propriedades dos recursos. Parametrizar uma configuração não elimina os efeitos de sua alteração.

Para conhecer os demais tipos e atributos disponíveis, consulte a documentação oficial de parâmetros do CloudFormation.

Até a próxima!

Sair da versão mobile