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 recursosAWS::Serverless::Function
,AWS::Serverless::Api
eAWS::Serverless::SimpleTable
herdam as propriedades definidas na seçãoGlobals
. 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
eAWS::Serverless::SimpleTable
herdam as propriedades definidas na seçãoGlobals
.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
eOutputs
do modelo. Os objetos declarados naParameters
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 dosam 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 comandosam 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çõesResources
eOutputs
.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
eOutputs
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.