Servidor de linguagens do AWS CloudFormation - AWS CloudFormation

Servidor de linguagens do AWS CloudFormation

O servidor de linguagens do AWS CloudFormation fornece recursos para acelerar a criação de infraestrutura como código (IaC) e a implantação de recursos da AWS com segurança e confiança. Ele segue o protocolo de servidor de linguagens (LSP) para fornecer documentação contextual e sobre preenchimento automático, diagnóstico por meio de validação estática, acesso à definição e ações de código. Além desses recursos tradicionais de servidor de idiomas, o servidor adiciona recursos on-line para explorar e implantar recursos da AWS por meio do CloudFormation. Isso inclui a capacidade de validar e implantar modelos usando conjuntos de alterações, de visualizar diferenças de pilhas, eventos, recursos e saídas, de listar pilhas e procurar recursos por tipo e de inserir o estado ativo dos recursos diretamente nos modelos do CloudFormation. As ferramentas para desenvolvedores e os ambientes de desenvolvimento integrados (IDE) podem aproveitar os recursos do servidor de linguagens para aprimorar a experiência dos desenvolvedores de IaC no CloudFormation.

IDEs integrados ao servidor de linguagens do AWS CloudFormation

A extensão do kit de ferramentas da AWS integra o servidor de linguagens do CloudFormation para aprimorar a experiência de criação. Atualmente, essa integração é compatível com os IDEs baseados em VS Code, incluindo:

Introdução

Pré-requisitos

Antes de começar, verifique se:

  • Você está usando um IDE baseado em VS Code em um sistema operacional compatível (macOS, Windows ou Linux).

  • Você instalou ou atualizou para a versão mais recente do kit de ferramentas da AWS para seu IDE.

Alguns recursos no servidor de linguagens do AWS CloudFormation exigem as credenciais configuradas e ativas da Conta da AWS. Você deve fazer login em sua Conta da AWS por meio do kit de ferramentas da AWS usando credenciais válidas.

Etapa 1: instalar ou atualizar o kit de ferramentas da AWS

  • Abra o gerenciador de extensões ou plug-ins do seu IDE.

  • Pesquise por kit de ferramentas da AWS.

  • Instale ou atualize para a versão 3.85.0 ou posterior do kit de ferramentas da AWS para seu IDE.

  • Reinicie seu IDE após a instalação.

Observação: após a instalação, o kit de ferramentas da AWS habilita automaticamente o suporte ao IDE do CloudFormation. Quando você instala ou atualiza o kit de ferramentas da AWS pela primeira vez com a extensão do servidor de linguagens do AWS CloudFormation, você recebe um prompt para conceder permissão à AWS para coletar dados de uso anônimos. Esses dados ajudam a AWS a melhorar o servidor de linguagens do CloudFormation e aprimoram a experiência de criação. Nenhuma informação sensível é coletada, e AWS não registra nem armazena conteúdo de modelos, configurações de recursos ou quaisquer dados identificáveis do cliente. Você pode alterar suas preferências de telemetria a qualquer momento nas configurações do IDE. Os dados de uso coletados focam apenas as interações de recursos e as métricas de performance. Esses insights ajudam a identificar e priorizar melhorias da AWS, como validação mais rápida, preenchimento automático aprimorado e melhores diagnósticos de erros.

Etapa 2: acessar o CloudFormation no painel do kit de ferramentas da AWS

No seu IDE, abra o painel do kit de ferramentas da AWS na barra de atividades. Em Kit de ferramentas da AWS, escolha CLOUDFORMATION.

Seções do painel:

  • Região: exibe a Região da AWS atual. Você pode alterá-la selecionando o nome da região ou usando o comando AWS CloudFormation: Select Region na paleta de comandos.

  • Ambiente: indica o ambiente que você selecionou durante o CFN init (por exemplo, desenvolvimento, teste ou produção). Esse valor aparece somente após a conclusão da etapa de seleção do ambiente.

  • Pilhas: exibe uma lista paginada das pilhas do CloudFormation em sua conta.

    • Clique no ícone de atualização para atualizar a lista de pilhas.

    • Use o ícone + para implantar um novo modelo como uma pilha.

    • Cada entrada da pilha inclui:

      • Visão geral: exibe o resumo e o status da pilha

      • ID da pilha do

      • Descrição

      • Hora de criação e Hora de atualização

      • Status e Motivo do status

      • Eventos, Saídas e Recursos

    • Conjunto de alterações

  • Recursos: depois de selecionar um tipo de recurso, o painel exibe os recursos da AWS desse tipo em sua conta. Você pode visualizá-los, atualizá-los, copiá-los ou importá-los para o seu modelo.

Etapa 3: validar, testar e refinar seu modelo

À medida que você escreve seu modelo do CloudFormation, o IDE fornece assistência de criação inteligente para ajudar a criar uma infraestrutura precisa e compatível com mais rapidez. O servidor de linguagens do CloudFormation é executado em segundo plano e fornece os seguintes recursos de criação:

  • Preenchimento de código: sugere tipos de recursos, parâmetros e propriedades com base nos esquemas do CloudFormation.

  • Adicionar recursos existentes da AWS: permite que você importe recursos existentes da sua Conta da AWS para o seu modelo. O IDE usa o AWS API Cloud Control (CCAPI) para recuperar a configuração ativa e as propriedades do recurso, ajudando você a clonar ou a reutilizar a infraestrutura existente em seu modelo.

Para adicionar recursos a seu modelo

  • Expandir o painel Recursos do CloudFormation: no painel lateral do kit de ferramentas da AWS, expanda CloudFormation e, em Recursos, clique no ícone Adicionar +.

  • Pesquisar um tipo de recurso: para encontrar um tipo de recurso específico da AWS, na barra de pesquisa, digite o tipo de recurso específico da AWS que você deseja adicionar. Exemplo:

    • AWS::S3::Bucket

    • AWS::Lambda::Function

    Você pode selecionar o tipo de recurso usando AWS CloudFormation: Add Resource Types na paleta de comandos.

  • Adicionar recursos ao seu modelo: no painel Recursos, uma lista paginada dos recursos da AWS detectados em sua conta é exibida. Se você tiver muitos recursos, somente a primeira página será exibida. Use os controles de navegação na parte inferior do painel para percorrer páginas adicionais e visualizar todos os recursos disponíveis.

  • Escolha o recurso que você deseja incluir em seu modelo.

  • Você pode inserir um recurso em seu modelo de duas formas, dependendo do seu objetivo:

    • Clonar um recurso existente: crie um novo recurso em seu modelo usando a configuração ativa e as propriedades de um recurso existente daAWS.

    • Importar um recurso existente: insira o recurso real em sua pilha adicionando-o ao seu modelo usando seu estado ativo.

Dicas

  • Você pode atualizar o painel Recursos a qualquer momento para ver a lista mais recente de recursos disponíveis em sua conta ou região.

  • Se você estiver importando recursos, não adicione um recurso que já pertença a uma pilha existente do CloudFormation na mesma conta.

  • Para confirmar se um recurso já é gerenciado pelo CloudFormation, clique no ícone i (informações) ao lado do nome do recurso.

  • Como alternativa, você pode usar o comando AWS CloudFormation: Get Stack Management Info para verificar se um recurso pertence a uma pilha.

Você pode adicionar recursos relacionados ao recurso selecionado usando o comando AWS CloudFormation: Add Related Resources by Type. Depois de selecionar um tipo de recurso dos já definidos em seu modelo, o IDE exibirá uma lista de recursos que normalmente estão associados ou dependem desse tipo. Por exemplo, se você selecionar o AWS::EC2::Instance, o IDE poderá sugerir a adição de recursos relacionados, como AWS::EC2::SecurityGroup ou AWS::EC2::Subnet. Esse recurso ajuda você a criar rapidamente componentes de infraestrutura conectados sem procurar manualmente por tipos de recursos compatíveis.

Validação estática

O IDE do CloudFormation fornece validação estática integrada baseada no AWS CloudFormation Linter (cfn-lint) e AWS CloudFormation Guard. Essas validações são executadas em segundo plano à medida que você cria modelos, ajudando a identificar erros de sintaxe, lacunas de conformidade e problemas de práticas recomendadas antes da implantação.

Visão geral da validação estática

Você verá dois tipos de validações estáticas em tempo real no IDE:

  • CloudFormation Linter (cfn-lint): valida seu modelo em relação às especificações de recursos e regras de esquema do CloudFormation.

  • Guard (cfn-guard): valida seu modelo em relação às regras de conformidade e aos pacotes de políticas organizacionais.

CloudFormation Linter (cfn-lint)

O CloudFormation Linter é integrado ao IDE para verificar automaticamente a sintaxe e a estrutura do modelo à medida que você digita.

  • Validação do esquema: detecta erros de sintaxe e esquema para garantir que seus modelos estejam em conformidade com o esquema de recursos do CloudFormation.

  • Destaque de erro: exibe linhas onduladas vermelhas ou amarelas abaixo dos problemas, representando bloqueadores ou avisos de implantação.

  • Ajuda ao passar o mouse: quando você passa o mouse sobre um erro, o IDE mostra a mensagem de diagnóstico associada a esse problema. Se uma solução rápida estiver disponível, ela também será oferecida no painel suspenso.

Integração do Guard

O Guard valida seus modelos em relação aos conjuntos de regras que definem as políticas de conformidade e segurança. O IDE executa validações do Guard em tempo real por meio do servidor de linguagens do CloudFormation, fornecendo feedback imediato enquanto você cria modelos.

  • Pacotes de regras padrão: o IDE inclui um conjunto pré-registrado de regras do Guard focado nas práticas recomendadas básicas de segurança de recursos e limpeza da configuração. Para saber mais, acesse o registro de regras de proteção.

  • Adição de pacotes de regras: para adicionar ou modificar conjuntos de regras, abra Configurações, Guard e selecione ou faça upload de pacotes de regras adicionais do Guard.

Dicas: compreensão dos indicadores de linhas onduladas

  • Ondulados azuis: dicas de práticas recomendadas ou recomendações de otimização.

  • Ondulados amarelos: avisos sobre problemas de não bloqueio (por exemplo, tags ou parâmetros ausentes).

  • Ondulados vermelhos: bloqueadores de implantação, como nomes de propriedades inválidos, campos obrigatórios ausentes ou incompatibilidades de esquema.

Etapa 4: navegar pelo modelo

Quando você clica em um arquivo de modelo no Explorador, o painel de Estrutura exibe automaticamente uma visão estruturada e hierárquica do seu modelo do CloudFormation. Ele organiza o modelo em seções como Parameters, Resources, Outputs e Mappings e mostra cada tipo de recurso e ID lógico. Isso facilita a localização e a navegação rápida para recursos ou parâmetros específicos em grandes modelos.

Você pode usar Ir para a definição para funções intrínsecas, como GetAtt eRef, permitindo que você vá diretamente para o recurso ou parâmetro referenciado em seu modelo. Isso ajuda você a rastrear dependências, a entender as relações de recursos e a fazer edições com mais eficiência.

Etapa 5: validar e implantar

Quando estiver pronto para implantar seu modelo do CloudFormation, abra a paleta de comandos e execute AWS CloudFormation: Validate and Deploy. O comando valida seu modelo e, se nenhum erro de bloqueio for encontrado, ele prosseguirá para a fase de implantação. Antes de confirmar, o IDE mostra um resumo do conjunto de alterações sensível a desvios e uma visualização de diferenças para que você possa revisar todas as alterações propostas.

Como a validação funciona

O IDE executa automaticamente uma verificação de validação antes da implantação e valida seu modelo quanto a causas comuns de falha, incluindo:

  • Sintaxe de propriedade inválida ou incompatibilidades de esquema: esses problemas geralmente são detectados pelo cfn-lint durante a criação, mas se um usuário continuar a implantar sem resolvê-los, a validação do tempo de implantação do CloudFormation mostrará os mesmos erros antes que a pilha seja criada ou atualizada.

  • O nome do recurso está em conflito com os recursos existentes na sua conta.

  • Restrições específicas do serviço, como conflitos de nomes de buckets do S3 ou falta de criptografia.

Se a validação detectar erros, o IDE destacará os problemas diretamente em seu modelo usando linhas onduladas vermelhas ou amarelas e listará os erros no painel PROBLEMAS. Cada problema inclui a propriedade ou o recurso específico que causou a falha, junto com uma sugestão de correção. Se não houver erros de bloqueio, você poderá prosseguir para a fase de implantação.

Se forem encontrados avisos (problemas de não bloqueio), uma caixa de diálogo será exibida permitindo que você continue com a implantação ou cancele e faça correções.

O IDE abre um conjunto de alterações sensível a desvios que exibe todas as diferenças entre seu modelo atual e a configuração da pilha implantada. Isso permite que você revise, confirme ou cancele o conjunto de alterações antes da execução.

Observação: conjuntos de alterações sensíveis a desvios aprimoram o processo de implantação do CloudFormation, permitindo que você gerencie o desvio de pilha com segurança. O desvio de pilha ocorre quando o estado real dos seus recursos é diferente do que está definido no seu modelo do CloudFormation, geralmente devido a alterações manuais feitas por meio do Console de gerenciamento da AWS, da CLI ou do SDK. O conjunto de alterações sensível a desvios do CloudFormation compara sua configuração de pilha processada com o estado ativo do recurso, e o IDE mostra essas diferenças para que você possa trazer os recursos de volta à conformidade antes da implantação.

Visualizar eventos de pilha

Quando a implantação começar, você poderá navegar até a guia CloudFormation no painel para monitorar o progresso em tempo real. Em Eventos de pilha, você verá uma lista das operações realizadas durante a implantação. Cada evento inclui detalhes como:

  • Carimbo de data e hora: a hora em que o evento ocorreu

  • Recurso: o recurso específico da AWS que está sendo criado, atualizado ou excluído

  • Status: o estado atual da operação (por exemplo, CREATE_IN_PROGRESS, UPDATE_COMPLETE ou ROLLBACK_IN_PROGRESS)

  • Motivo: contexto adicional ou mensagens de erro, se aplicável

Você também pode ver os recursos e as saídas da pilha nesse painel. Se você quiser abrir a pilha no Console de gerenciamento da AWS, use o ícone de link externo ao lado do nome da pilha. A visualização Eventos de pilha ajuda você a acompanhar o progresso da implantação, a identificar possíveis problemas e a confirmar quando sua pilha foi concluída com êxito.

Inicialização de um projeto do CloudFormation no IDE

Inicializar um projeto do CloudFormation no IDE ajuda você a configurar um espaço de trabalho estruturado com as pastas, a configuração do ambiente e as credenciais da AWS corretas para que você possa validar e implantar seus modelos de forma confiável. Você pode inicializar um novo projeto do CloudFormation diretamente do IDE para criar essa configuração recomendada.

Para inicializar um projeto CloudFormation:

  • Abrir a paleta de comandos

    • No seu IDE, abra a paleta de comandos (Ctrl+Shift+P ou Cmd+Shift+P em macOS).

    • Escolha AWS CloudFormation: CFN Init: Initialize Project.

  • Escolher um diretório de projeto

    • Por padrão, o IDE usará seu diretório de trabalho atual.

    • Você pode alterar esse caminho para qualquer pasta em que deseja armazenar seus modelos do CloudFormation.

  • Selecione seu perfil de credencial da AWS

    • Você receberá um prompt para escolher um perfil de credencial da AWS. O perfil selecionado será usado para detecção, validações e implantações do ambiente.

  • Configure o ambiente

    • Você receberá um prompt para criar ou selecionar um ambiente.

    • Os ambientes definem onde e como seus modelos serão implantados ou validados (por exemplo, desenvolvimento, versão beta ou produção). Você pode usar AWS CloudFormation: CFN Init: Add Environment para selecionar ou alterar seu ambiente.

    • Você pode usar AWS CloudFormation: CFN Init: Remove Environment para remover o ambiente selecionado.

  • (Opcional) Importar arquivos de parâmetros

    • Se você já tiver arquivos de parâmetros existentes, o IDE permitirá importá-los durante a inicialização.

    • O IDE detecta automaticamente arquivos compatíveis e os vincula ao seu projeto para uso na validação e implantação de modelos.

  • Nomear e finalizar o projeto

    • Forneça um nome de projeto, como ambiente beta, e conclua a configuração.

    • O IDE cria a estrutura inicial do projeto e o arquivo de configuração para você.

Você pode executar validações, visualizar implantações ou alternar entre ambientes diretamente do IDE.

Código aberto

O servidor de linguagens do AWS CloudFormation é de código aberto de acordo com a Licença do Apache-2.0, oferecendo aos clientes total transparência sobre como o diagnóstico de modelos, a validação do esquema e a análise estática são realizados. Isso reduz o atrito de segurança e conformidade para clientes que precisam de visibilidade no nível da origem antes de adotar ferramentas.

A base de código está disponível publicamente no GitHub: https://github.com/aws-cloudformation/cloudformation-languageserver/.

Precisa de ajuda?

Experimente a comunidade do CloudFormation no AWS re:Post.