Anatomia do modelo AWS SAM - AWS Serverless Application Model

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Anatomia do modelo AWS SAM

Um arquivo de modelo AWS SAM segue rigorosamente o formato de um arquivo de modelo AWS CloudFormation, que é descrito em Anatomia do modelo no Guia do usuário do AWS CloudFormation. As principais diferenças entre arquivos AWS SAM de modelo e arquivos AWS CloudFormation de modelo são as seguintes:

  • Declaração de transformação. A declaração Transform: AWS::Serverless-2016-10-31 é necessária para arquivos AWS SAM de modelo. Essa declaração identifica um arquivo AWS CloudFormation de modelo como um arquivo AWS SAM de modelo. Para obter mais informações sobre transformações, consulte Transformações no Guia do usuário do AWS CloudFormation.

  • Seção global. A Globals seção é exclusiva deAWS SAM. Ele define propriedades que são comuns a todas as suas funções e APIs sem servidor. Todos os recursos AWS::Serverless::Function, AWS::Serverless::Api e AWS::Serverless::SimpleTable herdam as propriedades definidas na seção Globals. Para obter mais informações sobre essa seção, consulte Seção Global do modelo AWS SAM.

  • Seção de recursos. Nos modelos AWS SAM, a seção Resources pode conter uma combinação de recursos AWS CloudFormation e recursos AWS SAM. Para obter mais informações sobre os recurso AWS CloudFormation, consulte Referência de tipos de recursos e propriedades AWS no Guia do usuário do AWS CloudFormation. Para obter mais informações sobre recursos do AWS SAM, consulte Recursos e propriedades do AWS SAM.

Todas as outras seções de um arquivo de modelo AWS SAM correspondem à seção AWS CloudFormation de arquivo de modelo com o mesmo nome.

YAML

O exemplo a seguir mostra um modelo de estilhaço formatado em YAML.

Transform: AWS::Serverless-2016-10-31 Globals: set of globals Description: String Metadata: template metadata Parameters: set of parameters Mappings: set of mappings Conditions: set of conditions Resources: set of resources Outputs: set of outputs

Seções do modelo

Os modelos AWS SAM incluem várias seções principais. Somente as seções Transform e Resources são obrigatórias.

Você pode incluir seções de modelo em qualquer ordem. No entanto, se você estiver usando extensões de linguagem, deverá adicionar AWS::LanguageExtensions antes da transformação sem servidor (ou seja, antes de AWS::Serverless-2016-10-31), conforme mostrado no seguinte exemplo:

Transform: - AWS::LanguageExtensions - AWS::Serverless-2016-10-31

À medida que você cria o modelo, pode ser útil usar a ordem lógica mostrada na lista a seguir. Isso ocorre porque os valores em uma seção podem se referir aos valores de uma seção anterior.

Transformar (obrigatório)

Para modelos AWS SAM, você deve incluir esta seção com um valor de AWS::Serverless-2016-10-31.

Transformações adicionais são opcionais. Para obter mais informações sobre transformações, consulte Transformações no Guia do usuário do AWS CloudFormation.

Globais (opcional)

Propriedades que são comuns a todas as suas funções sem servidor, APIs e tabelas simples. Todos os recursos AWS::Serverless::Function, AWS::Serverless::Api e AWS::Serverless::SimpleTable herdam as propriedades definidas na seção Globals.

Esta seção é exclusiva deAWS SAM. Não há uma seção correspondente nos modelo AWS CloudFormations.

Description (opcional)

Uma sequência de texto que descreve o modelo.

Esta seção corresponde diretamente à seção Description de modelos AWS CloudFormation.

Metadata (opcional)

Os objetos que fornecem informações adicionais sobre o modelo.

Esta seção corresponde diretamente à seção Metadata de modelos AWS CloudFormation.

Parameters (opcional)

Os valores a serem passados para seu modelo no runtime (ao criar ou atualizar uma pilha). Você pode fazer referência a parâmetros nas seções Resources e Outputs do modelo. Os objetos declarados na Parameters seção fazem com que o sam deploy --guided comando apresente solicitações adicionais ao usuário.

Os valores transmitidos usando o --parameter-overrides parâmetro do sam deploy comando e as entradas no arquivo de configuração têm precedência sobre as entradas no arquivo de modelo AWS SAM. Para obter mais informações sobre o comando sam deploy, consulte sam deploy na AWS SAMReferência de comandos da CLI. Para obter mais informações sobre o arquivo de configuração, consulte AWS SAM CLI Arquivo de configuração do  .

Mappings (opcional)

Um mapeamento de chaves e valores associados que você pode usar para especificar valores de parâmetros condicionais, semelhante a uma tabela de pesquisa. Você pode vincular uma chave a um valor correspondente usando a função intrínseca Fn::FindInMap nas seções Resources e Outputs.

Esta seção corresponde diretamente à seção Mappings de modelos AWS CloudFormation.

Condições (opcional)

As condições que controlam se determinados recursos são criados ou se determinadas propriedades de recursos são atribuídas a um valor durante a criação ou a atualização da pilha. Por exemplo, condicionalmente, você pode criar um recurso que depende de se a pilha é de um ambiente de teste ou de produção.

Esta seção corresponde diretamente à seção Conditions de modelos AWS CloudFormation.

Resources (obrigatório)

Especifica os recursos da pilha e suas propriedades, como uma instância do Amazon Elastic Compute Cloud (Amazon EC2) ou um bucket do Amazon Simple Storage Service (Amazon S3). Você pode fazer referência a recursos nas seções Resources e Outputs do modelo.

Essa seção é semelhante à seção Resources de modelos AWS CloudFormation. Nos modelos AWS SAM, essa seção pode conter recursos AWS SAM além dos recursos AWS CloudFormation.

Outputs (opcional)

Os valores que são retornados sempre que você visualiza as propriedades da pilha. Por exemplo, você pode declarar uma saída para o nome de um bucket do S3 e, em seguida, chamar o comando da aws cloudformation describe-stacks AWS Command Line Interface (AWS CLI) para visualizar o nome.

Esta seção corresponde diretamente à seção Outputs de modelos AWS CloudFormation.

Próximas etapas

Para baixar e implantar um aplicativo sem servidor de amostra que contém um arquivo AWS SAM de modelo, consulte Conceitos básicos do AWS SAM e siga as instruções em Tutorial: implante um aplicativo Hello World com AWS SAM.