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á.
AWS SAM anatomia do modelo
Um arquivo AWS SAM de modelo segue rigorosamente o formato de um arquivo de AWS CloudFormation modelo, que é descrito em Anatomia do modelo no Guia do AWS CloudFormation usuário. 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 de AWS 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 AWS SAM modelos, a
Resources
seção pode conter uma combinação de AWS CloudFormation recursos e AWS SAM recursos. Para obter mais informações sobre AWS CloudFormation recursos, consulte a referência de tipos de AWS recursos e propriedades no Guia AWS CloudFormation do usuário. Para obter mais informações sobre AWS SAM recursos, consulteAWS SAM recursos e propriedades.
Todas as outras seções de um arquivo de AWS SAM modelo 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
AWS SAM os modelos podem incluir 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 estiver usando extensões de linguagem, você deve adicionar AWS::LanguageExtensions
antes da transformação sem servidor (ou seja, antesAWS::Serverless-2016-10-31
), conforme mostrado no exemplo a seguir:
Transform: - AWS::LanguageExtensions - AWS::Serverless-2016-10-31
Ao criar seu 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 AWS SAM modelos, 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 de AWS SAM. Não há uma seção correspondente nos modelo AWS CloudFormation s.
- Description (opcional)
-
Uma sequência de texto que descreve o modelo.
Esta seção corresponde diretamente à
Description
seção de AWS CloudFormation modelos. - Metadata (opcional)
-
Os objetos que fornecem informações adicionais sobre o modelo.
Esta seção corresponde diretamente à
Metadata
seção de AWS CloudFormation modelos. - Parameters (opcional)
-
Os valores a serem passados para seu modelo em tempo de execução (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 SAM Referência de comandos da CLI. Para obter mais informações sobre o arquivo de configuração, consulte Arquivo de configuração do AWS SAM CLI. - 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 à
Mappings
seção de AWS CloudFormation modelos. - 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 à
Conditions
seção de AWS CloudFormation modelos. - 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 AWS SAM modelos, essa seção pode conter AWS SAM recursos além AWS CloudFormation dos recursos. - 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
aws cloudformation describe-stacks
AWS Command Line Interface (AWS CLI) para ver o nome.Esta seção corresponde diretamente à seção
Outputs
de modelos AWS CloudFormation .
Próximas etapas
Para baixar e implantar um exemplo de aplicativo sem servidor que contém um arquivo AWS SAM de modelo, consulte Começando com AWS SAM e siga as instruções em. Tutorial: implante um aplicativo Hello World com AWS SAM