Modelo AWS SAM

Modelo AWS SAM

Um aplicativo sem servidor pode ser construído usando serviços fornecidos pela AWS como o AWS Serverless Application Model (SAM). AWS fornece a AWS Sam Cli para o desenvolvimento de aplicativos baseados em Sam. Ele facilita um ambiente de execução semelhante ao Lambda para a construção, teste e depuração de aplicativos fornecidos pelos modelos SAM. Além disso, usando a AWS Sam Cli, podemos implantar o aplicativo SAM para a AWS.

O que vamos cobrir?

Neste guia, exploraremos o modelo AWS SAM.

O que é aws sam?

AWS SAM é usada para desenvolver aplicativos sem servidor na AWS. Tanto Sam quanto Sam Cli estão sob uma licença de código aberto. Sam define os recursos usados ​​em aplicativos sem servidor. Possui sintaxes curtas para denotar APIs, funções, bancos de dados e mapeamentos de fontes de evento. As sintaxias SAM são transformadas e expandidas em sintaxes da AWS CloudFormation. As aplicações podem ser modeladas usando YAML. Dessa forma, aplicativos sem servidor podem ser construídos rapidamente.

Recursos da AWS Sam

O AWS SAM pode ser integrado a outros serviços da AWS e, portanto, tem vários benefícios para o desenvolvimento de aplicativos sem servidor:

  1. Usando a AWS SAM, a organização dos componentes e recursos correspondentes é simplificada. Pode -se usá -lo para distribuir a configuração entre os recursos e todos os recursos correspondentes podem ser implantados coletivamente.
  1. Durante a implantação, as sintaxias SAM são expandidas para sintaxes nativas da AWS CloudFormation. Isso nos fornece a opção de implantação confiável com o CloudFormation.
  1. Podemos desenvolver aplicativos sem servidor em muitos idiomas de tempo de execução. Com a Sam Cli, podemos construir localmente, executar piloto e corrigir os aplicativos sem servidor. Além disso, a Sam CLI pode ser integrada com kits de ferramentas fornecidos pela AWS.
  1. AWS SAM CLI pode ser instalada em muitas distros, Mac e Windows, baseados em Linux, Mac e Windows.

Olhando para o modelo SAM

Um modelo AWS SAM é muito semelhante ao modelo de formação de nuvem da AWS, no entanto, existem algumas diferenças importantes entre os dois em termos das seguintes seções de modelo:

  1. Seção de transformação: Um modelo AWS SAM usa uma declaração explícita do formulário, Transform: AWS :: Serverless-2016-10-31, esta declaração especifica que este modelo de formação de nuvem da AWS é um modelo AWS SAM.
  1. Seção Globals: AWS Sam tem uma seção de globais exclusiva que declara os recursos que têm configurações comuns. A seção Globals funciona com a AWS :: Serverless :: function, AWS :: Serverless :: API, AWS :: Serverless :: httpapi e AWS :: Serverless :: SimpleTable Resources.
  1. Seção de recursos: A seção de recursos do modelo AWS SAM também pode conter recursos de formação de nuvem.
  1. Seção Parâmetros: O modelo SAM contém uma seção de parâmetros para passar valores no tempo de execução. Esta seção contém objetos que tornam o comando 'Sam implantar -guided' para produzir prompts extras para um usuário.

As seções de modelo restantes…

Além das seções acima mencionadas, as seções restantes vão com a seção Arquivo do modelo de formação de nuvem com o nome correspondente. O modelo AWS SAM requer apenas o Seções de transformação e recursos como um must-have. No entanto, também podemos adicionar outras seções. Além da seção acima, também podemos ter a seção abaixo mencionada no modelo AWS SAM:

  1. Descrição: Contém uma descrição opcional do modelo.
  1. Metadados: É também uma seção opcional que fornece mais informações sobre o modelo.
  1. Mapeamentos: Um mapeamento de teclas com seus valores correspondentes para especificar valores de parâmetros condicionais.
  1. Condições: Contém regras ou requisitos que governam se específico Os recursos são gerados ou se propriedades específicas de um recurso receber um valor ao criar ou atualizar uma pilha.
  1. Saídas: Declara os valores que são retornados quando as propriedades de uma pilha são vistas.

As seções de modelo discutidas acima podem ser adicionadas em qualquer ordem. No entanto, deve -se seguir uma ordem lógica. AWS SAM CLI tem um arquivo de configuração do formato de arquivo Toml. Este arquivo, nomeado como samconfig.Toml, Contém parâmetros padrão para os comandos SAM CLI.

Para verificar um modelo AWS SAM, use o formato de comando:

Sam Validate [Opções]

Exemplo de modelo SAM

Aqui estão os modelos de amostra do AWS SAM contendo seções específicas e os avisos de amostra correspondentes que aparecem com o 'Sam implantado -guido'Comando:

Seção Parâmetros:

Parâmetros:
OurPar:
Tipo: string
Padrão: OurPalval
Prompt de saída de amostra:
Parâmetro OurPar [OurParval]:

Seção de recursos:

Recursos:
Olá Mundo:
Tipo: AWS :: Serverless :: Função
Propriedades:
Codeuri: hello_world/
Manipulador: App.lambda_handler
Tempo de execução: python3.7
CodesigningConfigarn: ARN: AWS: Lambda: US-EAST-1: XXXXXXXXXXXX: Code-Signing-Config: CSC-12E12345DB1234567
Prompt de saída de amostra:
#Found Code Signing Configurações em suas definições de função
Você quer assinar seu código? [S/N]:
#Please Forneça detalhes do perfil de assinatura para as seguintes funções e camadas
#Detalhes do perfil de design para função 'Helloworld'
Nome do perfil de assinatura:
Assinando o ID da conta do proprietário do perfil (opcional):
#Detalhes do perfil que assinam a camada 'MyLayer', que é usada por funções 'Helloworld'
Nome do perfil de assinatura:
Assinando o ID da conta do proprietário do perfil (opcional):

Conclusão

Neste guia, exploramos o modelo AWS SAM. A próxima coisa que você pode tentar é implantar um simples aplicativo Hello World Serverless, contendo um arquivo de modelo AWS SAM.