CLI do AWS SAM adiciona suporte às extensões de linguagem do AWS CloudFormation para acelerar o desenvolvimento local sem servidor
A CLI do AWS SAM agora oferece suporte às extensões de linguagem do AWS CloudFormation, o que permite reduzir a duplicação em seus modelos de infraestrutura como código (IaC), enquanto mantém todo o fluxo de trabalho de desenvolvimento local. Isso acelera seu desenvolvimento sem servidor ao permitir que você defina recursos uma única vez e itere localmente sem precisar esperar pelas implantações na nuvem.
Os desenvolvedores geralmente precisam definir vários recursos semelhantes, como funções do Lambda, tabelas do DynamoDB ou tópicos do SNS, a partir de uma única definição de modelo. No entanto, os desenvolvedores que usam a CLI do SAM para criar, testar e implantar suas aplicações sem servidor anteriormente não podiam processar modelos que usassem as extensões de linguagem do CloudFormation. Isso obrigava os desenvolvedores a escolher entre reduzir a duplicação nos modelos e usar a CLI do SAM para desenvolvimento local. Agora, a CLI do SAM processa as extensões de linguagem na memória para operações locais, o que preserva seu modelo original para a implantação do CloudFormation. Você pode definir seus recursos uma única vez e testá-los localmente em todos os comandos da CLI do SAM, para identificar erros como sintaxe inválida ou dependências ausentes antes da implantação. Isso encurta seus ciclos de iteração e reduz o tempo gasto na depuração de falhas em implantações na nuvem.
Para começar a usá-la, baixe ou atualize a CLI do SAM para a versão mais recente. Adicione a transformação AWS::LanguageExtensions ao seu modelo do SAM e use Fn::ForEach para gerar vários recursos a partir de uma única definição. Os comandos da CLI do SAM, incluindo sam build, sam local invoke, sam sync, sam local start-api e sam validate, expandirão automaticamente seus loops e processarão cada recurso gerado. Você pode invocar as funções expandidas pelo nome, por exemplo, sam local invoke AlphaFunction. A CLI do SAM também oferece suporte aos atributos Fn::Length, Fn::ToJsonString, Fn::FindInMap com DefaultValue e aos atributos condicionais DeletionPolicy e UpdateReplacePolicy.
Para saber mais, acesse o guia do desenvolvedor da CLI do SAM e a publicação do blog sobre o lançamento.