Sobre o projeto
O AWS Serverless Application Model (SAM) transform é um macro de CloudFormation de código aberto que traduz modelos SAM simplificados em modelos padrão do CloudFormation. Ele estende a sintaxe nativa do CloudFormation com tipos de recursos de nível superior, como AWS::Serverless::Function, AWS::Serverless::Api e AWS::Serverless::SimpleTable, permitindo que desenvolvedores definam aplicações serverless com menos código repetitivo.
Principais capacidades incluem:
- **Transformação de modelos**: Adicionar `Transform: AWS::Serverless-2016-10-31` a um modelo do CloudFormation para habilitar os tipos de recursos SAM. O transform expande definições abreviadas em seus equivalentes completos do CloudFormation, incluindo papéis IAM, permissões e mapeamentos de fontes de eventos.
- **Práticas recomendadas integradas**: Provisiona automaticamente papéis IAM com políticas de menor privilégio, anexa políticas gerenciadas como AWSLambdaBasicExecutionRole e aplica padrões sensatos para runtime, handler e configurações de timeout.
- **Testes e depuração locais**: Integra-se com o AWS SAM CLI (sam sync, sam local invoke, sam local start-api) para executar e testar aplicações serverless localmente antes de implantar na AWS.
- **Modelos de políticas e conectores**: Suporta modelos de políticas IAM reutilizáveis e conectores de recursos para simplificar o gerenciamento de permissões entre vários recursos.
- **Suporte a múltiplos runtimes**: Funciona com runtimes Lambda, incluindo Node.js, Python, Java, Go, .NET e Ruby, além de implantações com imagens de contêiner.
O projeto é escrito em Python (3.8+) e publicado como o pacote `aws-sam-translator` no PyPI. O desenvolvimento usa um fluxo de trabalho baseado em Makefile com `make init` para configuração de dependências e `make pr` para executar a suíte de testes. O repositório inclui fluxos de trabalho de CI para testes de build e atualizações de esquema, e suporta contribuições via Gitpod.
O uso típico envolve escrever um modelo SAM em YAML ou JSON, implantá-lo com o SAM CLI ou diretamente via CloudFormation, e aproveitar o transform para gerar a infraestrutura subjacente. O projeto também fornece documentação extensa, incluindo um guia do desenvolvedor, especificação de modelos e tutoriais de workshop para aprender desenvolvimento serverless na AWS.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.