

# Editar modelos visualmente com o Template Studio
<a name="template-studio"></a>

O Template Studio é um editor de modelos no console do CloudFormation. Ele mostra seu modelo como texto ao lado de um diagrama dos recursos que o modelo declara. À medida que você edita o modelo, o diagrama é redesenhado para corresponder. É possível validar o modelo, convertê-lo entre YAML e JSON e salvá-lo no Amazon S3 sem sair do console.

O texto do modelo é autoritativo. O diagrama é uma representação visual desse texto, não uma superfície editável separada. Você faz todas as alterações no modelo.

## Considerações
<a name="template-studio-considerations"></a>

Lembre-se do seguinte ao trabalhar no Template Studio:
+ Você cria no modelo, não no diagrama. O diagrama mostra os recursos que seu modelo declara e como eles se referem uns aos outros; você não pode adicionar ou configurar um recurso editando o diagrama.
+ Suas edições não são salvas automaticamente. O Template Studio solicita uma confirmação antes de você sair com as alterações não salvas. Se você sair ou atualizar a página, as alterações não salvas serão descartadas. Salve no Amazon S3, ou copie ou baixe o modelo antes de sair.
+ A conversão de um modelo de YAML para JSON descarta seus comentários, porque o JSON não tem sintaxe para eles. A conversão de volta para YAML não os restaura.
+ No momento, a validação do CloudFormation no Template Studio não está disponível para rascunhos maiores que 51.200 bytes (50 KiB). A ação Validar atual envia o rascunho por meio do parâmetro `TemplateBody`, que tem esse limite. Esse não é o limite geral do tamanho do modelo. Você ainda pode salvar o modelo e usá-lo em uma operação de pilha, conforme as cotas do CloudFormation. Para obter mais informações, consulte [Validar um modelo](#template-studio-validate).
+ Salvar grava o modelo em um bucket na sua conta, de modo que os modelos salvos sejam cobrados conforme as taxas padrão do Amazon S3. Para obter mais informações, consulte [Preço do Amazon S3](https://aws.amazon.com/s3/pricing/).
+ Você pode baixar o diagrama de recursos somente quando a tela é exibida na visualização **Tela** ou **Ambos**.

## Permissões necessárias para o Template Studio
<a name="template-studio-permissions"></a>

As permissões necessárias dependem da fonte do modelo e das ações que você executa: 

`cloudformation:GetTemplate`  
Necessária para abrir o modelo de uma pilha existente. Conceda acesso à pilha cujo modelo você deseja editar.

`s3:GetObject`  
Necessária para ler um modelo do Amazon S3 usando suas credenciais. Conceda acesso ao objeto do modelo de origem. Um URL pré-assinado usa a autorização incluída no URL.

`cloudformation:ValidateTemplate`  
Obrigatória para escolher **Validar**.

`s3:PutObject`  
Necessária para salvar um modelo. Defina o escopo dessa permissão para objetos no bucket de destino, por exemplo, `arn:aws:s3:::{{destination-bucket}}/*`, em vez de todos os recursos.

`s3:CreateBucket`  
Obrigatória somente quando o console cria um bucket de destino ausente. Isso pode ser o bucket gerenciado pelo console ou um nome de bucket que você especifica. A reutilização de um bucket existente não exige essa permissão.

`s3:ListBucket`  
Obrigatória ao salvar em um bucket existente que você especificar. O Template Studio utiliza `HeadBucket` para verificar o acesso, o proprietário esperado do bucket e o bucket Região da AWS antes do upload.  
Essa permissão é opcional para o bucket gerenciado pelo console. Sem a permissão, a caixa de diálogo de salvamento ainda exibe o nome do bucket. Salvar requer `s3:PutObject` e, se o bucket precisar ser criado, `s3:CreateBucket`.

## Abra o Template Studio
<a name="template-studio-open"></a>

O local de onde você abre o Template Studio determina com o que ele abre e o que acontece depois que você salva.

**Para iniciar um novo modelo**

1. Abra o [console do CloudFormation](https://console.aws.amazon.com/cloudformation/). 

1. Na barra de navegação na parte superior da tela, escolha a Região da AWS na qual você pretende fazer a implantação.

1. No painel de navegação, selecione **Template Studio**.

**Para criar um modelo ao criar uma pilha**

1. Na página **Criar pilha**, escolha **Criar com o Template Studio**.

1. Crie o modelo e selecione**Salvar e continuar**.

1. O assistente de pilha continua com o modelo que você salvou, portanto, não é preciso carregá-lo separadamente.

**Para editar o modelo de uma pilha existente**

1. Na página **Pilhas**, escolha o nome da pilha.

1. Atualize a pilha diretamente ou crie um conjunto de alterações.

1. Na página **Preparar modelo**, escolha **Abrir no Template Studio**. O modelo atual da pilha é aberto.

1. Escolha **Salvar e continuar** para retornar à atualização ou ao conjunto de alterações com seu modelo editado.

Em outras partes do console, onde quer que um modelo seja exibido, você pode escolher **Abrir no Template Studio** para trabalhar nele.

## Trabalhe com o modelo e o diagrama
<a name="template-studio-editor-and-canvas"></a>

O Template Studio é aberto com o modelo e o diagrama lado a lado. Utilize o controle de visualização para escolher o que está na tela:

**Modelo**  
Somente o modelo, em toda a largura. Utilize isso para ler ou escrever um modelo sem o diagrama.

**Tela**  
Somente o diagrama, em toda a largura. Utilize isso para um modelo grande em que o diagrama exija a largura total.

**Ambos**  
O modelo e o diagrama juntos. Arraste a divisória entre eles para dar mais espaço a cada lado.

O diagrama agrupa recursos relacionados e estabelece uma conexão sempre que um recurso se refere a outro por meio de `Ref`, `Fn::GetAtt`, `Fn::Sub` ou `DependsOn`. Um recurso ao qual nada faz referência aparece sozinho, o que facilita a identificação de um recurso acidentalmente desconectado.

**nota**  
Por exemplo, três funções podem assumir o mesmo perfil do IAM. O diagrama mostra o perfil dentro de cada função, mas o modelo declara somente um perfil. Verifique o modelo para ver quantos recursos existem.

## Conversão entre YAML e JSON
<a name="template-studio-format"></a>

O formato em que você salva determina o nome do arquivo e o tipo de conteúdo do objeto que o Template Studio grava no Amazon S3.

**Para converter o modelo que você está editando**

1. Selecione o controle de formato, que nomeia o formato em que você está atualmente.

1. Selecione o outro formato.

1. A conversão de YAML para JSON exige que você confirme, pois os comentários não podem ser transferidos. Selecione**Converter** para continuar.

**Importante**  
O JSON não tem sintaxe para comentários. Quando você converte um modelo YAML que contém comentários em JSON, esses comentários são removidos e a conversão de volta para YAML não os restaura. Copie tudo o que você quiser manter antes de converter.

O controle de formato não está disponível enquanto o modelo não pode ser lido, porque não há nada completo o suficiente para ser convertido. Corrija o modelo primeiro.

## Problemas de sintaxe enquanto você digita
<a name="template-studio-diagnostics"></a>

O editor verifica a sintaxe do modelo enquanto você o escreve e sublinha o que ele não consegue ler: um colchete não fechado, um recuo mal colocado, uma chave duplicada. Passe o mouse sobre um sublinhado para visualizar o problema. Quando uma linha tem vários problemas, eles são numerados para que você possa diferenciá-los.

Essa é uma verificação da *sintaxe* do modelo, não de seu conteúdo. O editor não sabe quais tipos de recursos existem ou quais propriedades eles usam, então um modelo que é um YAML perfeitamente bem formado ainda pode estar errado de formas que só o CloudFormation pode informar. Selecione**Validar** para isso.

## Validar um modelo
<a name="template-studio-validate"></a>

A validação verifica a sintaxe do modelo com o editor e verifica o modelo com o CloudFormation antes de usá-lo em uma operação de pilha. Ambas as verificações usam o rascunho atual, incluindo as alterações que você não salvou. Uma verificação bem-sucedida do CloudFormation não substitui os erros de sintaxe relatados pelo editor.

**nota**  
O Template Studio envia o rascunho para a API [`ValidateTemplate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ValidateTemplate.html) usando o parâmetro `TemplateBody`. Esse parâmetro tem um limite de 51.200 bytes (50 KiB).  
Para um rascunho acima desse limite, o Template Studio não envia a solicitação do CloudFormation. A verificação do CloudFormation não está disponível, mas isso não significa que o modelo seja inválido. O editor ainda pode relatar erros de sintaxe.  
A mesma API oferece suporte a modelos de até 1 MB por meio de `TemplateURL`. O Template Studio não carrega rascunhos editados para validação baseada em URL. Você pode salvar o modelo no Amazon S3 e validá-lo por meio de uma operação de pilha, sujeita às cotas do CloudFormation.

**Para validar o modelo que você está editando**

1. Escolha **Validar**.

1. Um modelo aprovado nas duas verificações é relatado como **Válido**.

1. Se alguma das verificações encontrar erros, revise-os na mensagem de validação. Os erros do editor incluem números de linha e coluna. Corrija os erros no editor e valide novamente.

## Salvar modelo no Amazon S3
<a name="template-studio-save"></a>

O CloudFormation lê os modelos para operações de pilha do Amazon S3; portanto, é ao salvá-los que você torna seu modelo disponível para o restante do console.

Utilize referências dinâmicas aos segredos armazenados no Secrets Manager ou cadeias de caracteres seguras no Systems Manager Parameter Store em vez de incluir segredos em texto simples nos modelos salvos. Para obter mais informações, consulte [Obter valores armazenados em outros serviços usando referências dinâmicas](dynamic-references.md).

**Para salvar o modelo que você está editando**

1. Escolha **Save and continue**.

1. Verifique o destino. Por padrão, o modelo vai para o bucket do Amazon S3 que o CloudFormation gerencia para modelos carregados no Região da AWS atual. Se esse bucket ainda não existe, o CloudFormation o cria quando você o salva e o reutiliza para modelos que você salvar posteriormente.

   1. Em vez disso, para escolher seu próprio destino, escolha **Usar um bucket diferente** e insira o **Nome do bucket**. O bucket será criado se ainda não existir.

1. Escolha **Confirmar e continuar**.

**nota**  
Os modelos armazenados no Amazon S3 são cobrados conforme as taxas padrão do Amazon S3, independentemente do bucket que os contenha. Para obter mais informações, consulte [Preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

Salvar não exige um resultado de validação bem-sucedido. Quando a validação encontra erros, o Template Studio solicita que você confirme que deseja salvar mesmo assim. Salvar não corrige esses erros; revise-os e corrija-os antes de usar o modelo em uma operação de pilha.

## Copiar ou baixar um modelo ou diagrama
<a name="template-studio-copy-download"></a>

Selecione **Ações do modelo** para retirar o modelo ou o diagrama do console:

**Copiar modelo**  
Copia o modelo conforme ele aparece no editor para sua área de transferência.

**Baixar modelo**  
Salva o modelo como um arquivo no formato em que você está editando no momento.

**Baixar o diagrama de recursos**  
Salva o diagrama como uma imagem PNG. Uma vez que a imagem é uma captura do diagrama, ela está disponível somente quando o diagrama está na tela.