O que é o AWS Serverless Application Model (AWS SAM)? - AWS Serverless Application Model

O que é o AWS Serverless Application Model (AWS SAM)?

O AWS Serverless Application Model (AWS SAM) é uma estrutura de código aberto para a criação de aplicações sem servidor usando infraestrutura como código (IaC). Com a sintaxe abreviada do AWS SAM, os desenvolvedores declaram os recursos do CloudFormation e os recursos especializados com tecnologia sem servidor que são transformados em infraestrutura durante a implantação. Ao trabalhar com o AWS SAM, você interagirá com:

  1. AWS SAMCLI: uma ferramenta de linha de comando que ajuda você a desenvolver, testar localmente e implantar suas aplicações com tecnologia sem servidor.

  2. Modelo do AWS SAM: uma extensão do CloudFormation que fornece uma sintaxe simplificada para definir recursos com tecnologia sem servidor.

Quando você usa o comando sam init, ele cria um diretório de projeto, que chamaremos de projeto do AWS SAM, que normalmente inclui seu modelo do AWS SAM, código da aplicação e outros arquivos de configuração.

Quando utilizar AWS SAM

AWS SAM é uma solução IaC ideal para cenários em que você deseja um desenvolvimento simplificado com tecnologia sem servidor com todo o poder do CloudFormation. Por exemplo, é possível usar o SAM para:

  • Aplicações com tecnologia sem servidor: você pode usar o SAM para definir rapidamente as funções do AWS Lambda, as APIs do Amazon API Gateway, as tabelas do Amazon DynamoDB e outros recursos com tecnologia sem servidor com o mínimo de código.

  • Aprimoramento do CloudFormation: você pode combinar o SAM com os modelos existentes do CloudFormation para adicionar componentes com tecnologia sem servidor à infraestrutura tradicional. Os recursos do SAM funcionam junto com os recursos padrão do CloudFormation no mesmo modelo.

  • Desenvolvimento e testes locais: você pode usar a CLI do SAM para testar as funções do Lambda localmente, simular endpoints do API Gateway e depurar aplicações com tecnologia sem servidor em sua máquina de desenvolvimento antes da implantação da AWS.

  • CI/CD com tecnologia sem servidor: você pode criar pipelines de implantação usando modelos de SAM que geram automaticamente a infraestrutura do CloudFormation necessária para ambientes de preparação e produção.

  • Migração de recursos criados pelo console: você pode converter funções do Lambda e recursos do API Gateway criados no Console de Gerenciamento da AWS na infraestrutura como código usando modelos do SAM.

Comparação do AWS SAM com outras ferramentas de IaC

  • Use o SAM em vez do CloudFormation para simplificar as definições de recursos com tecnologia sem servidor e, ao mesmo tempo, manter a compatibilidade do modelo.

  • Use o SAM em vez do AWS CDK se você preferir uma abordagem declarativa para descrever sua infraestrutura em vez de uma abordagem programática.

  • Combine o SAM com o AWS CDK usando os recursos de teste locais do SAM CLI para aprimorar suas aplicações de CDK.

Atributos principais

O AWS SAM oferece uma variedade de benefícios que melhoram a experiência do desenvolvedor, permitindo que você:

Defina seu código de infraestrutura de aplicativos rapidamente, usando menos código

Crie modelos AWS SAM para definir seu código de infraestrutura de aplicativos sem servidor. Implante seus modelos diretamente CloudFormation para provisionar seus recursos.

Gerencie seus aplicativos sem servidor durante todo o ciclo de vida de desenvolvimento

Use o AWS SAM CLI para gerenciar seu aplicativo sem servidor por meio das fases de criação, compilação, implantação, teste e monitoramento do seu ciclo de vida de desenvolvimento. Para obter mais informações, consulte AWS SAM CLI.

Provisione rapidamente permissões entre recursos com conectores AWS SAM

Use conectores AWS SAM em seus AWS SAM modelos para definir permissões entre seus recursos AWS. AWS SAM transforma seu código nas permissões do IAM necessárias para facilitar sua intenção. Para obter mais informações, consulte Gerenciando permissões de recursos com conectores AWS SAM.

Sincronize as alterações locais com a nuvem à medida que você se desenvolve

Use o comando AWS SAM CLI sam sync para sincronizar automaticamente as alterações locais na nuvem, acelerando seus fluxos de trabalho de desenvolvimento e teste na nuvem. Para obter mais informações, consulte Introdução ao uso de sam sync para sincronização com a Nuvem AWS.

Gerencie seus aplicativos Terraform sem servidor

Use o AWS SAM CLI para realizar a depuração e o teste locais de suas camadas e funções do Lambda. Para obter mais informações, consulte Suporte AWS SAM CLI Terraform.

Informações relacionadas