Praticar de graça

⌨️aws cloudformation create-stack

USO — comando da trilha de CloudFormation.

Manual do comando

É o mesmo texto que aws cloudformation create-stack help devolve dentro do CLImb.

USO
    aws cloudformation create-stack --stack-name <nome> --template-body file://<template> \
        [--parameters ParameterKey=<p>,ParameterValue=<v> ...] [--capabilities CAPABILITY_IAM|CAPABILITY_NAMED_IAM] \
        [--on-failure ROLLBACK|DO_NOTHING|DELETE]

Cria o stack. O comando só RECEBE o pedido e devolve o StackId: se um
recurso falhar, o stack faz ROLLBACK (apaga o que criou) e termina em
ROLLBACK_COMPLETE — confira com describe-stacks e describe-stack-events.

CAPABILITIES
    template com recurso do IAM exige CAPABILITY_IAM; com nome próprio
    (UserName, RoleName...) exige CAPABILITY_NAMED_IAM. Sem isso:
    InsufficientCapabilitiesException.

PARÂMETROS
    os declarados em Parameters; sem valor e sem Default, o create falha.

Onde você pratica isto (9 atividades)

Cada uma é um pedido de trabalho real; você resolve digitando o comando, e o estado fica salvo pro exercício seguinte.

Seu primeiro stack

Infraestrutura como código: em vez de criar recursos um a um, você descreve tudo num template e o CloudFormation provisiona. Existe um template pronto site-s3.yaml (um bucket). Crie um stack chamado site a partir dele.

Infra completa num arquivo só

O poder do IaC: um template, vários serviços. Use o infra.yaml (S3 + DynamoDB + IAM) pra criar um stack chamado app. Repare: ele cria um usuário do IAM com nome próprio (app-deploy), e a AWS exige que você declare isso com --capabilities CAPABILITY_NAMED_IAM — é a sua assinatura de "sei que este template mexe em permissão". Depois confira no aws dynamodb list-tables que a tabela nasceu.

Suba e liste stacks

Crie um stack site2 a partir do site-s3.yaml e liste seus stacks.

Infra que se reconstrói sozinha (CloudFormation)

A stack app ficou de pé desde os testes e continua na fatura. Derrube ela, confira o template infra.yaml e suba a mesma infra de novo, agora como loja-infra — provando que dá pra recriar tudo do zero a partir do arquivo. <small>(é isso que IaC compra: a stack é descartável, o template é a fonte da verdade. Repare que só dá pra subir de novo DEPOIS de derrubar — os recursos têm nome único na conta)</small>

O stack de dev

Suba o stack pedidos-dev com o pedidos-api.yaml, passando o parâmetro Ambiente=dev. A tabela vai nascer como pedidos-dev e a função como pedidos-api-dev.

O mesmo template, produção

Suba o stack pedidos-prod com o mesmo pedidos-api.yaml, agora com Ambiente=prod, e liste os exports — são dois, um de cada stack.

O template copiado

Um colega copiou o template de pedidos pra fazer o do estoque e esqueceu de trocar o nome de uma tabela. Suba o stack estoque com o estoque-copia.yaml e confira o StackStatus. O create-stack vai responder sucesso — o que acontece depois é outra história.

Stack que nasceu quebrado não se conserta

Stack em ROLLBACK_COMPLETE não aceita update — o caminho é apagar e criar de novo. Apague o estoque e suba de novo com o template corrigido, estoque.yaml.

Suba a infraestrutura que você escreveu

Último passo, e o que junta tudo: suba a stack stack-formatos a partir do seu template e confirme que o bucket nasceu com o nome que você digitou. <small>(é isto que Infraestrutura como Código significa na prática — você descreveu um recurso num arquivo de texto e a nuvem obedeceu. Daqui pra frente é o mesmo princípio, só com templates maiores)</small>

Outros comandos com página própria

Ler a sintaxe explica. Digitar fixa. No CLImb você roda aws cloudformation create-stack num terminal AWS simulado e vê a saída — inclusive a mensagem de erro, quando erra a flag.

Praticar no terminal
Todas as lições · Praticar no terminal · Sobre