274
Modelo de aplicativo sem servidor da &AWS; Guia do desenvolvedor

Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativosem servidor da &AWS;

Guia do desenvolvedor

Page 2: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Modelo de aplicativo sem servidor da &AWS;: Guia do desenvolvedorCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Table of ContentsO que é AWS SAM? .......................................................................................................................... 1

Benefícios do uso do AWS SAM .................................................................................................. 1Próxima etapa ............................................................................................................................ 2

Conceitos básicos ............................................................................................................................... 3Como instalar a CLI do AWS SAM ............................................................................................... 3

(Linux) .............................................................................................................................. 3(Windows) ......................................................................................................................... 7macOS .............................................................................................................................. 9

Configurar credenciais AWS ....................................................................................................... 11Uso do AWS CLI .............................................................................................................. 11Não utilizar o AWS CLI ..................................................................................................... 12

Tutorial Implementar uma aplicação "Hello World" ......................................................................... 12Prerequisites .................................................................................................................... 13Etapa 1 Transferir uma amostra AWS SAM Aplicação ............................................................ 13Etapa 2. Construa a sua aplicação ...................................................................................... 14Etapa 3 Expanda a sua aplicação na nuvem AWS ................................................................. 15Etapa 4. Testar a sua candidatura localmente (opcional) ......................................................... 17Troubleshooting ................................................................................................................ 20Limpeza ........................................................................................................................... 22Conclusion ....................................................................................................................... 22Próximas etapas: .............................................................................................................. 22

AWS SAM Especificação ................................................................................................................... 23Anatomia do modelo ................................................................................................................. 23

YAML .............................................................................................................................. 24Seções do modelo ............................................................................................................ 24Próximas etapas: .............................................................................................................. 25Variáveis globais ............................................................................................................... 25

Referência de propriedades e recursos ........................................................................................ 29AWS::Serverless::Api ......................................................................................................... 29AWS::sem servidor::aplicação ............................................................................................. 58AWS::Serverless::Function ................................................................................................. 62AWS::sem servidor::httpapi ............................................................................................... 113AWS::sem servidor::layerversion ........................................................................................ 128AWS::Serverless::SimpleTable .......................................................................................... 132AWS::Serverless::StateMachine ......................................................................................... 135

Atributos de recursos ............................................................................................................... 149Funções intrínsecas ................................................................................................................. 150Recursos produzidos ............................................................................................................... 150

Referência gerada AWS CloudFormation Recursos .............................................................. 150Gerado AWS CloudFormation Referência de recursos .......................................................... 151AWS::Serverless::Api ....................................................................................................... 152AWS::Serverless::Function ................................................................................................ 153AWS::sem servidor::httpapi ............................................................................................... 155

API Gateway Extensões ........................................................................................................... 156Autoria ........................................................................................................................................... 158

A validar AWS SAM Ficheiros de modelos .................................................................................. 158Como trabalhar com camadas .................................................................................................. 158Utilização de aplicações com falhas ........................................................................................... 160

Definir uma aplicação em mosaico do AWS Serverless Application Repository .......................... 160Definir uma aplicação em mosaico a partir do sistema de ficheiros local ................................... 161Implementação de aplicações com falhas ........................................................................... 162

Controlo do acesso às API ....................................................................................................... 162Escolher um mecanismo para controlar o acesso ................................................................. 163Exemplo: Definição Lambda Autorizadores de tokens ........................................................... 163

iii

Page 4: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Exemplo: Definição Lambda Solicitar autorizadores .............................................................. 164Exemplo: Definição Amazon Cognito Agrupamentos de utilizadores ........................................ 165Exemplo: Definição IAM Permissões .................................................................................. 166Exemplo: Definir chaves API ............................................................................................. 166Exemplo: Definir políticas de recursos ................................................................................ 167Exemplo: Definir respostas personalizadas .......................................................................... 168

Orquestrar aplicações .............................................................................................................. 168Example ........................................................................................................................ 169Mais informações ............................................................................................................ 169

Desenvolvimento ............................................................................................................................. 170Aplicações de construção ......................................................................................................... 170

Examples ....................................................................................................................... 170Camadas de construção ........................................................................................................... 171

Examples ....................................................................................................................... 170Construir tempos de runtimes personalizados .............................................................................. 172

Examples ....................................................................................................................... 173Teste e depuração .......................................................................................................................... 174

Invocar funções localmente ...................................................................................................... 174Ficheiro de variável de ambiente ....................................................................................... 175Layers ........................................................................................................................... 176

Correr API Gateway Localmente ............................................................................................... 176Layers ........................................................................................................................... 178

Integração com testes automatizados ......................................................................................... 178A gerar payload do evento de amostra ....................................................................................... 180Depuração de passo a passo Lambda Funções localmente ........................................................... 180

Utilizar conjuntos de ferramentas AWS ............................................................................... 180Correr AWS SAM Localmente ........................................................................................... 181Node.js .......................................................................................................................... 181Python ........................................................................................................................... 183Golang ........................................................................................................................... 185

Recuperar argumentos adicionais de depuração de execução ........................................................ 186A implementar ................................................................................................................................ 187

Implementar utilizando o AWS SAM CLI ..................................................................................... 187Publicar aplicações sem servidor ............................................................................................... 187Implementações automáticas .................................................................................................... 187Troubleshooting ...................................................................................................................... 188

Erro de CLI: "Restrições de segurança não satisfeitas" ........................................................... 20Implementar gradualmente ....................................................................................................... 188

Monitoramento ................................................................................................................................ 191Como trabalhar com logs ......................................................................................................... 191

A obter registos por AWS CloudFormation Pilha .................................................................. 191A obter registos por Lambda Nome da função ..................................................................... 191Registos de varejo .......................................................................................................... 191Visualizar registos para um intervalo de tempo específico ...................................................... 191Filtrar registos ................................................................................................................. 191Erro ao destacar ............................................................................................................. 192JSON Impressão bonita ................................................................................................... 192

Publicação ..................................................................................................................................... 193Prerequisites .......................................................................................................................... 193Publicar uma nova aplicação .................................................................................................... 194

Etapa 1 Adicionar uma secção de metadados ao AWS SAM Modelo ....................................... 194Etapa 2. Empacotar o aplicativo do .................................................................................... 194Etapa 3 Publicar a aplicação ............................................................................................ 195

Publicar a nova versão de um aplicativo existente () ..................................................................... 195Tópicos adicionais ................................................................................................................... 196Propriedades da secção de metadados ...................................................................................... 196

Properties ...................................................................................................................... 196

iv

Page 5: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Casos de uso ................................................................................................................. 197Example ........................................................................................................................ 198

Aplicações de exemplo .................................................................................................................... 199Processo DynamoDB Eventos ................................................................................................... 199

Antes de começar ........................................................................................................... 199Etapa 1 Inicializar o aplicativo ........................................................................................... 199Etapa 2. Testar o aplicativo localmente .............................................................................. 199Etapa 3 Empacotar o aplicativo do .................................................................................... 200Etapa 4. Implante o aplicativo do . ..................................................................................... 200Próximas etapas: ............................................................................................................ 201

Processo Amazon S3 Eventos .................................................................................................. 201Antes de começar ........................................................................................................... 201Etapa 1 Inicializar o aplicativo ........................................................................................... 201Etapa 2. Empacotar o aplicativo do .................................................................................... 202Etapa 3 Implante o aplicativo do . ...................................................................................... 202Etapa 4. Testar o aplicativo localmente .............................................................................. 203Próximas etapas: ............................................................................................................ 203

Referência do AWS SAM ................................................................................................................. 204AWS SAM Especificação .......................................................................................................... 204AWS SAMReferência de comandos da CLI ................................................................................. 204Modelos de política do AWS SAM ............................................................................................. 204AWS SAMReferência de comandos da CLI ................................................................................. 205

construir sam .................................................................................................................. 205sam deploy .................................................................................................................... 207sam init ......................................................................................................................... 209sam local gerar evento .................................................................................................... 211sam local invoke ............................................................................................................. 212sam local start-api ........................................................................................................... 213sam local start-lambda ..................................................................................................... 215registos sam ................................................................................................................... 216sam package .................................................................................................................. 218sam publish .................................................................................................................... 219sam validate ................................................................................................................... 219

AWS SAM Config. CLI ............................................................................................................. 220Config. config. config. ...................................................................................................... 220Example ........................................................................................................................ 220Options .......................................................................................................................... 220

Modelos de política do AWS SAM ............................................................................................. 221Syntax ........................................................................................................................... 221Examples ....................................................................................................................... 222Tabela de modelos de políticas ......................................................................................... 222Troubleshooting .............................................................................................................. 227Lista de modelos de políticas ............................................................................................ 227

AWS SAM Telemetria ISM ....................................................................................................... 263Desactivar a telemetria para uma sessão ........................................................................... 263Desativar a telemetria para o seu perfil em todas as sessões ................................................. 263Tipos de informações recolhidas ....................................................................................... 264Saiba mais: .................................................................................................................... 264

Observações importantes ......................................................................................................... 264Instalar AWS SAM IGN em janelas de 32 bits ..................................................................... 264

Histórico de documentos .................................................................................................................. 266.................................................................................................................................................. cclxix

v

Page 6: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorBenefícios do uso do AWS SAM

O que é o Modelo de aplicativo semservidor da AWS (AWS SAM)?

O Modelo de aplicativo sem servidor da AWS (AWS SAM) é uma estrutura de código aberto que você podeusar para criar aplicativos sem servidor na AWS.

Um aplicativo sem servidor é uma combinação de funções Lambda, fontes de eventos e outros recursosque trabalham juntos para realizar tarefas. Observe que um aplicativo sem servidor é mais do que apenasuma função Lambda—, pode incluir recursos adicionais como APIs, bancos de dados e mapeamentos dafonte do evento.

Pode usar AWS SAM para definir as suas aplicações sem servidor. AWS SAM consiste nos seguintescomponentes:

• AWS SAM especificação do modelo. Utiliza esta especificação para definir a sua aplicação semservidor. Fornece-lhe uma sintaxe simples e limpa para descrever as funções, as API, as permissões, asconfigurações e os eventos que compõem uma aplicação sem servidor. Utiliza um AWS SAM ficheiro demodelo para operar numa única entidade, expansível e versionada, que é a sua aplicação sem servidor.Para o total AWS SAM especificação do modelo, consulte Modelo de aplicativo sem servidor da AWS(AWS SAM) Especificação (p. 23).

 • AWS SAM interface da linha de comando (AWS SAM CLI). Utilize esta ferramenta para criar aplicações

sem servidor definidas por AWS SAM modelos. O CLI fornece comandos que lhe permitem verificarse AWS SAM os ficheiros de modelos são escritos de acordo com a especificação, invocam Lambdafunções localmente, depuração de passo Lambda funções, empacotar e implementar aplicações semservidor para a AWS Cloud, etc. Para mais detalhes sobre como utilizar o AWS SAM CLI, incluindoo total AWS SAM Referência do comando de CLI, consulte AWS SAMReferência de comandos daCLI (p. 204).

Este guia mostra como utilizar AWS SAM para definir, testar e implementar uma aplicação sem servidorsimples. Também fornece um exemplo de aplicação (p. 12) que pode transferir, testar localmente eimplementar na Nuvem AWS. Pode utilizar esta aplicação como ponto de partida para desenvolver as suaspróprias aplicações sem servidor.

Benefícios do uso do AWS SAMUma vez que o AWS SAM integra outros serviços AWS, a criação de aplicações sem servidor com AWSSAM proporciona os seguintes benefícios:

• Configuração de implementação única. AWS SAM facilita a organização de componentes e recursosrelacionados e opera numa única pilha. Pode usar AWS SAM partilhar a configuração (como memóriae tempos) entre recursos e implementar todos os recursos relacionados como uma entidade única eversionada.

 • Extensão de AWS CloudFormation. Porque AWS SAM é uma extensão de AWS CloudFormation, obtém

as capacidades de implementação fiáveis de AWS CloudFormation. Pode definir recursos utilizandoAWS CloudFormation no seu AWS SAM modelo. Além disso, pode utilizar todo o conjunto de recursos,funções intrínsecas e outras funcionalidades do modelo disponíveis em AWS CloudFormation.

1

Page 7: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Próxima etapa

 • Melhores práticas integradas. Pode usar AWS SAM para definir e implementar a sua infraestrutura como

config. Isto torna possível a utilização e aplicação de melhores práticas, tais como revisões de códigos.Além disso, com algumas linhas de configuração, pode permitir implementações seguras através deCodeDeploy, e pode ativar o rastreio utilizando AWS X-Ray.

 • Depuração e testes locais. O AWS SAM O BUL permite-lhe criar, testar e depurar localmente aplicações

sem servidor definidas pelos modelos SAM. O CLI proporciona um ambiente de execução semelhantea Lambda localmente. Ajuda-o a levantar problemas antecipadamente, fornecendo paridade com oambiente de execução Lambda real. Para atravessar e depurar o seu código para compreender o queo código está a fazer, pode utilizar AWS SAM com kits de ferramentas AWS como Toolkit da AWSpara JetBrains, Kit de ferramentas AWS para o pigleto, Kit de ferramentas AWS para intellij, e Kit deferramentas AWS para o código visual do estúdio. Isto aperta o ciclo de feedback ao tornar possívelencontrar e resolver problemas que possa ter na nuvem.

 • Integração profunda com ferramentas de desenvolvimento. Pode usar AWS SAM com um conjunto

de ferramentas AWS para construir aplicações sem servidor. Pode descobrir novas aplicações noAWS Serverless Application Repository. Para produção, teste e depuração AWS SAM–aplicações semservidor, pode utilizar o AWS Cloud9 IDE. Para construir um pipeline de implementação para as suasaplicações sem servidor, pode utilizar CodeBuild, CodeDeploy, e CodePipeline. Também pode utilizarAWS CodeStar para começar com uma estrutura de projecto, um repositório de código e uma condutade CI/CD que esteja automaticamente configurada para si. Para implementar a sua aplicação semservidor, pode utilizar o Plug-in Jenkins. Pode utilizar o Kit de ferramentas Stackery.io para construiraplicações prontas para produção.

Próxima etapaConceitos básicos com AWS SAM (p. 3)

2

Page 8: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorComo instalar a CLI do AWS SAM

Conceitos básicos com AWS SAMPara começar com AWS SAM, utilize o AWS SAM CLI para criar uma aplicação sem servidor que podeempacotar e implementar na nuvem AWS. Pode executar a aplicação na AWS Cloud ou localmente no seuanfitrião de desenvolvimento.

Para instalar o AWS SAM CLI, incluindo tudo o que necessita de ser instalado ou configurado parautilizar o AWS SAM CLI, ver Como instalar a CLI do AWS SAM (p. 3). Após o AWS SAM O CLI estáinstalado, pode executar o seguinte tutorial.

Tópicos• Como instalar a CLI do AWS SAM (p. 3)• Configurar credenciais AWS (p. 11)• Tutorial Implementar uma aplicação "Hello World" (p. 12)

Como instalar a CLI do AWS SAMAWS SAM fornece-lhe uma ferramenta de linha de comandos, a AWS SAM CLI, que facilita a criação egestão de aplicações sem servidor. Tem de instalar e configurar algumas coisas para utilizar o AWS SAMCLI.

Para instalar o AWS SAM CLI, consulte as seguintes instruções para o seu anfitrião de desenvolvimento:

Tópicos• Instalar o AWS SAM CLI nos Linux (p. 3)• Instalar o AWS SAM CLI no Windows (p. 7)• Instalar o AWS SAM CLI nos macos (p. 9)

Instalar o AWS SAM CLI nos LinuxOs passos seguintes ajudam-no a instalar e configurar os pré-requisitos necessários para utilizar o AWSSAM CLI no seu anfitrião Linux:

1. Criar uma conta da AWS2. Configurar IAM permissões.3. Instale o Docker. Observação O acoplador é apenas um pré-requisito para testar a sua candidatura

localmente.4. Instale o Homebrew.5. Instalar a CLI do AWS SAM.

Note

Estas instruções fazem com que a versão Python predefinida do seu ambiente seja aquelainstalada pelo Homebrew. A alteração na versão Python predefinida ocorre em Etapa 4. InstalarHomebrew (p. 5).

3

Page 9: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

(Linux)

Etapa 1 Criação de uma conta da AWSSe ainda não tem uma conta AWS, consulte aws.amazon.com e escolha Criar uma conta AWS. Para obterinstruções detalhadas, consulte Criar e ativar uma conta da AWS.

Etapa 2. Criar um IAM Utilizador com permissões deadministradorSe ainda não tiver um IAM utilizador com permissões de administrador, consulte Criar o seu primeiroutilizador e grupo administrador IAM no Guia do usuário do IAM.

Além disso, tem de configurar as credenciais AWS para ativar AWS SAM CLI para efectuar chamadas deserviço AWS. Por exemplo, o AWS SAM A CLI faz chamadas para Amazon S3 e AWS CloudFormation.Para mais informações sobre a configuração de credenciais AWS, consulte Configurar credenciaisAWS (p. 11).

Etapa 3 Instale o Docker.Note

O acoplador é apenas um pré-requisito para testar a sua candidatura localmente e para criarpacotes de implementação utilizando o --use-container bandeira. Pode ignorar esta secçãoou instalar o acoplador mais tarde se não planear utilizar estas funcionalidades inicialmente.

O acoplador é uma aplicação que processa recipientes nas suas máquinas Linux. AWS SAM fornece umambiente local semelhante ao AWS Lambda para utilizar como um contentor do acoplador. Pode utilizareste recipiente para criar, testar e depurar as suas aplicações sem servidor.

Tem de ter o acoplador instalado e trabalhar para poder executar projetos sem servidor e funcionarlocalmente com o AWS SAM CLI. O AWS SAM A TIA utiliza o DOCKER_HOST variável do ambiente paracontactar o daemon do acoplador. Os passos seguintes descrevem como instalar, configurar e verificaruma instalação do acoplador para trabalhar com o AWS SAM CLI.

O acoplador está disponível em muitos sistemas operativos diferentes, incluindo as distribuições de Linuxmais modernas, como centos, Debian, Ubuntu, etc. Para obter mais informações sobre como instalar oDocker no seu sistema operacional, consulte o Guia de instalação do Docker.

Se estiver a utilizar Amazon Linux 2, siga estes passos para instalar o acoplador:

1. Atualize os pacotes instalados e o cache de pacotes em sua instância.

sudo yum update -y

2. Instale o pacote do Docker Community Edition mais recente.

sudo amazon-linux-extras install docker

3. Inicie o serviço Docker.

sudo service docker start

4. Adicione o ec2-user ao grupo docker, de modo que você possa executar comandos do Docker semusar o sudo.

sudo usermod -a -G docker ec2-user

4

Page 10: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

(Linux)

5. Faça logout e login novamente para selecionar as novas permissões do grupo docker. Você podefazer isso ao fechar a janela de terminal SSH atual e se reconectar à sua instância em outra janela.Sua nova sessão SSH terá as permissões de grupo docker apropriadas.

6. Verifique se o ec2-user pode executar comandos do Docker sem sudo.

docker ps

Deve ver a seguinte saída, mostrando que o acoplador está instalado e em funcionamento:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Note

Em alguns casos, pode ser necessário reinicializar sua instância para fornecer permissõespara o ec2-user acessar o daemon do Docker. Tente reinicializar sua instância se você vir oseguinte erro:

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Se tiver problemas em instalar o acoplador, consulte o Troubleshooting (p. 6) mais adiante neste guia,ou Resolução de problemas secção do Guia de instalação do acoplador para sugestões adicionais deresolução de problemas.

Etapa 4. Instalar HomebrewNote

Este passo faz com que a versão Python predefinida do seu ambiente seja aquela instalada peloHomebrew.

A abordagem recomendada para instalar o AWS SAM A CLI no Linux é utilizar o gestor de embalagensHomebrew. Para mais informações sobre Homebrew, consulte Documentação Homebrew.

Para instalar o Homebrew, primeiro tem de instalar Git. Para mais informações sobre Git, consulteDocumentação de T. O Git está disponível em muitos sistemas operativos diferentes, incluindo asdistribuições de Linux mais modernas. Para obter instruções sobre como instalar Git no seu sistemaoperativo específico, consulte A instalar Git.

Depois de instalar o Git com sucesso, execute o seguinte para instalar o Homebrew:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Em seguida, adicione Homebrew ao seu PATH executando os seguintes comandos. Estes comandosfuncionam em todos os principais sabores do Linux adicionando ~/.profile em Debian/Ubuntu ou~/.bash_profile nos centos/Fedora/redhat:

test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profileecho "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile

5

Page 11: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

(Linux)

Verifique se o Homebrew está instalado:

brew --version

Deve ver a saída como o seguinte na instalação bem-sucedida do Homebrew:

Homebrew 2.1.6 Homebrew/homebrew-core (git revision ef21; last commit 2019-06-19)

Etapa 5. Instalar a CLI do AWS SAM.Siga estes passos para instalar o AWS SAM CLI utilizando Homebrew:

brew tap aws/tapbrew install aws-sam-cli

Verificar a instalação

sam --version

Deve ver a saída como o seguinte após a instalação bem-sucedida do AWS SAM CLI:

SAM CLI, version 1.0.0

Está agora pronto para iniciar o desenvolvimento.

UpgradingPara atualizar o AWS SAM CLI, ainda utiliza Homebrew, mas substitui install com upgrade a seguir:

brew upgrade aws-sam-cli

TroubleshootingErro do acoplador: "Não é possível ligar ao daemon do acoplador. O daemon doacoplador está a funcionar neste anfitrião?"Em alguns casos, pode ter de reiniciar a sua instância para fornecer permissão para o ec2-user paraaceder ao daemon do acoplador. Se receber este erro, tente reiniciar a sua instância.

Erro shell: "comando não encontrado"A sua capa não consegue localizar o AWS SAM Executável de COV no caminho. Se receber este erro,verifique a localização do directório onde o AWS SAM O executável de CLI foi instalado e verifique se odiretório está no seu caminho.

Por exemplo, se utilizou as instruções neste tópico para 1) Instalar Homebrew, e 2) Use Homebrew parainstalar o AWS SAM CLI, então AWS SAM O executável de CLI será instalado no seguinte local:

/home/homebrew/.homebrew/bin/sam

6

Page 12: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

(Windows)

Próximas etapas:Está agora pronto para começar a construir as suas próprias aplicações sem servidor usando AWS SAM!Se pretender começar com as aplicações sem servidor, escolha uma das seguintes ligações:

• Tutorial Implementar uma aplicação "Hello World" (p. 12) – Instruções passo a passo para transferir,construir e implementar uma aplicação sem servidor simples.

• AWS SAM aplicações de exemplo em github – Aplicações de amostras no AWS SAM o repositório deanimação que pode experimentar com.

Instalar o AWS SAM CLI no WindowsOs passos seguintes ajudam-no a instalar e configurar os pré-requisitos necessários para utilizar o AWSSAM CLI no seu anfitrião do Windows:

1. Criar uma conta da AWS2. Configurar IAM permissões.3. Instale o Docker. Observação O acoplador é apenas um pré-requisito para testar a sua candidatura

localmente.4. Instalar a CLI do AWS SAM.

Etapa 1 Criação de uma conta da AWSSe ainda não tem uma conta AWS, consulte aws.amazon.com e escolha Criar uma conta AWS. Para obterinstruções detalhadas, consulte Criar e ativar uma conta da AWS.

Etapa 2. Criar um IAM Utilizador com permissões deadministradorSe ainda não tiver um IAM utilizador com permissões de administrador, consulte Criar o seu primeiroutilizador e grupo administrador IAM no Guia do usuário do IAM.

Além disso, tem de configurar as credenciais AWS para ativar AWS SAM CLI para efectuar chamadas deserviço AWS. Por exemplo, o AWS SAM A CLI faz chamadas para Amazon S3 e AWS CloudFormation.Para mais informações sobre a configuração de credenciais AWS, consulte Configurar credenciaisAWS (p. 11).

Etapa 3 Instale o Docker.Note

O acoplador é apenas um pré-requisito para testar a sua candidatura localmente e criar pacotesde implementação utilizando o --use-container bandeira. Pode ignorar esta secção ouinstalar o acoplador mais tarde se não planear utilizar estas funcionalidades inicialmente.

O acoplador é uma aplicação que processa recipientes nas suas máquinas Linux. AWS SAM fornece umambiente local semelhante ao AWS Lambda para utilizar como um contentor do acoplador. Pode utilizareste recipiente para criar, testar e depurar as suas aplicações sem servidor.

Tem de ter o acoplador instalado e trabalhar para poder executar projetos sem servidor e funcionarlocalmente com o AWS SAM CLI. O AWS SAM A TIA utiliza o DOCKER_HOST variável do ambiente para

7

Page 13: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

(Windows)

contactar o daemon do acoplador. Os passos seguintes descrevem como instalar, configurar e verificaruma instalação do acoplador para trabalhar com o AWS SAM CLI.

1. Instale o Docker.

O Desktop suporta o sistema operativo Windows mais recente. Para versões legadas do Windows, acaixa de ferramentas do acoplador está disponível. Escolha a sua versão do Windows para os passosde instalação correctos do acoplador:

• Para instalar o acoplador para o Windows 10, consulte Instalar o ambiente de trabalho do acopladorpara Windows.

• Para instalar o acoplador para versões mais antigas do Windows, consulte Instalar a caixa deferramentas do acoplador no Windows.

2. Configure as suas unidades partilhadas.

O AWS SAM A CLI requer que o directório do projecto, ou qualquer directório principal, esteja listadonuma unidade partilhada. Em alguns casos, tem de partilhar a sua unidade para que o acopladorfuncione correctamente.

• Se estiver a utilizar o Windows 10 no modo Hyper-V, consulte Partilha de ficheiros do acoplador.• Para partilhar unidades em versões mais antigas do Windows, consulte Adicionar directórios

partilhados.3. Verificar a instalação

Depois do acoplador estar instalado, verifique se está a funcionar. Confirme também que podeexecutar comandos do acoplador do AWS SAM CLI (por exemplo, docker ps). Não precisa deinstalar, buscar ou puxar quaisquer recipientes—o AWS SAM O CLI faz isto automaticamente,conforme necessário.

Se tiver problemas em instalar o acoplador, consulte o Registos e resolução de problemas secção do Guiade instalação do acoplador para sugestões adicionais de resolução de problemas.

Etapa 4. Instalar a CLI do AWS SAM.Os ficheiros Windows Installer (MSI) são os ficheiros do instalador do pacote para o sistema operativoWindows.

Siga estes passos para instalar o AWS SAM CLI utilizando o ficheiro MSI.

1. Instalar o AWS SAM CLI 64 bits.

Note

Se operar num sistema de 32 bits, consulte Instalar AWS SAM IGN em janelas de 32bits (p. 264).

2. Verificar a instalação

Depois de concluir a instalação, verifique-a abrindo um novo prompt de comandos ou uma indicaçãode powershell. Deve ser capaz de invocar sam a partir da linha de comandos.

sam --version

Deve ver a saída como o seguinte após a instalação bem-sucedida do AWS SAM CLI:

SAM CLI, version 1.0.0

8

Page 14: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

macOS

Está agora pronto para iniciar o desenvolvimento.

Próximas etapas:Está agora pronto para começar a construir as suas próprias aplicações sem servidor usando AWS SAM!Se pretender começar com as aplicações sem servidor, escolha uma das seguintes ligações:

• Tutorial Implementar uma aplicação "Hello World" (p. 12) – Instruções passo a passo para transferir,construir e implementar uma aplicação sem servidor simples.

• AWS SAM aplicações de exemplo em github – Aplicações de amostras no AWS SAM o repositório deanimação que pode experimentar com.

Instalar o AWS SAM CLI nos macosOs passos seguintes ajudam-no a instalar e configurar os pré-requisitos necessários para utilizar o AWSSAM CLI no seu anfitrião do macos:

1. Criar uma conta da AWS2. Configurar IAM permissões.3. Instale o Docker. Observação O acoplador é apenas um pré-requisito para testar a sua candidatura

localmente.4. Instale o Homebrew.5. Instalar a CLI do AWS SAM.

Etapa 1 Criação de uma conta da AWSSe ainda não tem uma conta AWS, consulte aws.amazon.com e escolha Criar uma conta AWS. Para obterinstruções detalhadas, consulte Criar e ativar uma conta da AWS.

Etapa 2. Criar um IAM Utilizador com permissões deadministradorSe ainda não tiver um IAM utilizador com permissões de administrador, consulte Criar o seu primeiroutilizador e grupo administrador IAM no Guia do usuário do IAM.

Além disso, tem de configurar as credenciais AWS para ativar AWS SAM CLI para efectuar chamadas deserviço AWS. Por exemplo, o AWS SAM A CLI faz chamadas para Amazon S3 e AWS CloudFormation.Para mais informações sobre a configuração de credenciais AWS, consulte Configurar credenciaisAWS (p. 11).

Etapa 3 Instale o Docker.Note

O acoplador é apenas um pré-requisito para testar a sua candidatura localmente e para criarpacotes de implementação utilizando o --use-container bandeira. Pode ignorar esta secçãoou instalar o acoplador mais tarde se não planear utilizar estas funcionalidades inicialmente.

O acoplador é uma aplicação que executa contentores nas suas máquinas de macos. AWS SAM forneceum ambiente local semelhante ao AWS Lambda para utilizar como um contentor do acoplador. Podeutilizar este recipiente para criar, testar e depurar as suas aplicações sem servidor.

9

Page 15: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

macOS

Tem de ter o acoplador instalado e trabalhar para poder executar projetos sem servidor e funcionarlocalmente com o AWS SAM CLI. O AWS SAM A TIA utiliza o DOCKER_HOST variável do ambiente paracontactar o daemon do acoplador. Os passos seguintes descrevem como instalar, configurar e verificaruma instalação do acoplador para trabalhar com o AWS SAM CLI.

1. Instale o Docker.

O AWS SAM O BSV suporta o acoplador em macos Sierra 10.12 ou superior. Para instalar oacoplador, consulte Instalar o Desktop para Mac.

2. Configure as suas unidades partilhadas

O AWS SAM A CLI requer que o directório do projecto, ou qualquer directório principal, esteja listadonuma unidade partilhada. Para partilhar unidades em macos, consulte Partilha de ficheiros.

3. Verificar a instalação

Depois do acoplador estar instalado, verifique se está a funcionar. Confirme também que podeexecutar comandos do acoplador do AWS SAM CLI (por exemplo, docker ps). Não precisa deinstalar, buscar ou puxar quaisquer recipientes––o AWS SAM O CLI faz isto automaticamente,conforme necessário.

Se tiver problemas em instalar o acoplador, consulte o Registos e resolução de problemas secção do Guiade instalação do acoplador para sugestões adicionais de resolução de problemas.

Etapa 4. Instalar HomebrewA abordagem recomendada para instalar o AWS SAM A CLI em macos é utilizar o gestor de embalagensHomebrew. Para mais informações sobre Homebrew, consulte Documentação Homebrew.

Para instalar o Homebrew, primeiro tem de instalar Git. Para mais informações sobre Git, consulteDocumentação de T. Git está disponível em muitos sistemas operativos diferentes, incluindo macos. Paraobter instruções sobre como instalar Git no seu sistema operativo específico, consulte A instalar Git.

Depois de instalar o Git com sucesso, execute o seguinte para instalar o Homebrew, certificando-se de quesegue as indicações:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Verifique se o Homebrew está instalado:

brew --version

Deve ver a saída como o seguinte na instalação bem-sucedida do Homebrew:

Homebrew 2.1.6 Homebrew/homebrew-core (git revision ef21; last commit 2019-06-19)

Etapa 5. Instalar a CLI do AWS SAM.Siga estes passos para instalar o AWS SAM CLI utilizando Homebrew:

brew tap aws/tap

10

Page 16: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Configurar credenciais AWS

brew install aws-sam-cli

Verificar a instalação

sam --version

Deve ver a saída como o seguinte após a instalação bem-sucedida do AWS SAM CLI:

SAM CLI, version 1.0.0

Está agora pronto para iniciar o desenvolvimento.

UpgradingPara atualizar o AWS SAM CLI, ainda utiliza Homebrew, mas substitui install com upgrade a seguir:

brew upgrade aws-sam-cli

Próximas etapas:Está agora pronto para começar a construir as suas próprias aplicações sem servidor usando AWS SAM!Se pretender começar com as aplicações sem servidor, escolha uma das seguintes ligações:

• Tutorial Implementar uma aplicação "Hello World" (p. 12) – Instruções passo a passo para transferir,construir e implementar uma aplicação sem servidor simples.

• AWS SAM aplicações de exemplo em github – Aplicações de amostras no AWS SAM o repositório deanimação que pode experimentar com.

Configurar credenciais AWSO AWS SAM a interface da linha de comando (CLI) requer que defina as credenciais AWS para que possaefectuar chamadas para serviços AWS em seu nome. Por exemplo, o AWS SAM A CLI faz chamadas paraAmazon S3 e AWS CloudFormation.

Pode já ter definido credenciais AWS para trabalhar com ferramentas AWS, como um dos sdks AWS ouo AWS CLI. Se não tiver, este tópico mostra-lhe as abordagens recomendadas para definir as credenciaisAWS.

Para definir as credenciais AWS, tem de ter ID de chave de acesso e o seu chave de acesso secreta parao utilizador IAM que pretende configurar. Para obter informações sobre as identificações de acesso e asteclas de acesso secretas, consulte Gerir chaves de acesso para IAM Utilizadores no Guia do usuário doIAM.

Em seguida, determine se tem AWS CLI instalado. Em seguida, siga as instruções numa das seguintessecções:

Uso do AWS CLISe tiver o AWS CLI instalado, utilize o configurar aws e siga as indicações:

11

Page 17: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Não utilizar o AWS CLI

$ aws configureAWS Access Key ID [None]: your_access_key_idAWS Secret Access Key [None]: your_secret_access_keyDefault region name [None]: Default output format [None]:

Para obter informações sobre o configurar aws comando, ver Configurar rapidamente o AWS CLI no Guiado usuário do AWS Command Line Interface.

Não utilizar o AWS CLISe não tiver o AWS CLI instalado, pode criar um ficheiro de credenciais ou definir variáveis de ambiente:

• Ficheiro de credenciais – Pode definir credenciais no ficheiro de credenciais AWS no seu sistema local.Este ficheiro tem de estar localizado numa das seguintes localizações:• ~/.aws/credentials em Linux ou macos• C:\Users\USERNAME\.aws\credentials no Windows

Esse arquivo deve conter linhas no seguinte formato:

[default]aws_access_key_id = your_access_key_idaws_secret_access_key = your_secret_access_key

 • Variáveis de ambiente – Pode definir o AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY variáveis

de ambiente.

Para definir estas variáveis em Linux ou macos, utilize o exportar comando:

export AWS_ACCESS_KEY_ID=your_access_key_idexport AWS_SECRET_ACCESS_KEY=your_secret_access_key

Para definir estas variáveis no Windows, utilize o definir comando:

set AWS_ACCESS_KEY_ID=your_access_key_idset AWS_SECRET_ACCESS_KEY=your_secret_access_key

Tutorial Implementar uma aplicação "Hello World"Neste guia, pode transferir, construir e implementar uma amostra de aplicação Hello World utilizando AWSSAM. Depois, teste a aplicação na AWS Cloud e, opcionalmente, testá-la localmente no seu anfitrião dedesenvolvimento.

Esta aplicação implementa um backend API simples. Consiste num API Gateway endpoints e um Lambdafunção. Quando envia um pedido GET para o API Gateway endpoint, o Lambda função é invocada. Estafunção devolve um hello world mensagem.

O diagrama a seguir mostra os componentes deste aplicativo:

12

Page 18: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Prerequisites

Segue-se uma pré-visualização de comandos que executa para criar a sua aplicação Hello World. Paraobter mais detalhes sobre cada um desses comandos, consulte as seções posteriores nesta página

#Step 1 - Download a sample applicationsam init

#Step 2 - Build your applicationcd sam-appsam build

#Step 3 - Deploy your applicationsam deploy --guided

PrerequisitesEste guia pressupõe que concluiu os passos no Como instalar a CLI do AWS SAM (p. 3) para o seuSO. Pressupõem-se que você fez o seguinte:

1. Criou uma conta da AWS.2. Configurou permissões do IAM.3. Acoplador instalado. Observação O acoplador é apenas um pré-requisito para testar a sua candidatura

localmente.4. Instalou o Homebrew. Observação Homebrew é apenas um pré-requisito para Linux e macos.5. Instalou a CLI do AWS SAM. Observação Certifique-se de que tem a versão 1.0.0 ou posterior. É

possível verificar a versão executando o comando sam --version.

Etapa 1 Transferir uma amostra AWS SAM AplicaçãoComando a ser executado:

sam init

Siga as instruções na tela. Para este tutorial, recomendamos que escolha os Modelos de início rápidoAWS, o tempo de execução da sua escolha e o Exemplo do mundo Hello.

13

Page 19: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorEtapa 2. Construa a sua aplicação

Exemplo de resultado:

----------------------- Generating application: ----------------------- Name: sam-app Runtime: python3.7 Dependency Manager: pip Application Template: hello-world Output Directory: .

Next steps can be found in the README file at ./sam-app/README.md

O que o AWS SAM está fazendo:

Este comando cria um diretório com o nome que forneceu como nome do projecto. O conteúdo dodirectório do projeto é semelhante ao seguinte (estes conteúdos são criados quando um dos tempos deexecução do Python e o Exemplo do Mundo Hello são escolhidos):

sam-app/ ### README.md ### events/ # ### event.json ### hello_world/ # ### __init__.py # ### app.py #Contains your AWS Lambda handler logic. # ### requirements.txt #Contains any Python dependencies the application requires, used for sam build ### template.yaml #Contains the AWS SAM template defining your application's AWS resources. ### tests/ ### unit/ ### __init__.py ### test_handler.py

Existem três ficheiros especialmente importantes:

• template.yaml: Contém o AWS SAM modelo que define os recursos AWS da sua aplicação.• hello_world/app.py: Contém o seu Lambda lógica do processador.• hello_world/requirements.txt: Contém quaisquer dependências Python que a aplicação exige e

é usada para sam build.

Etapa 2. Construa a sua aplicaçãoComando a ser executado:

Primeiro, mude para o diretório do projeto (ou seja, o diretório onde o arquivo template.yaml doaplicativo de exemplo está localizado; por padrão é sam-app) e execute este comando:

sam build

Exemplo de resultado:

14

Page 20: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Etapa 3 Expanda a sua aplicação na nuvem AWS

Build Succeeded

Built Artifacts : .aws-sam/build Built Template : .aws-sam/build/template.yaml

Commands you can use next ========================= [*] Invoke Function: sam local invoke [*] Deploy: sam deploy --guided

O que o AWS SAM está fazendo:

O AWS SAM O CAI vem com resumos para vários Lambda para construir as suas dependências e copiaro código fonte para as pastas de preparação de modo a que tudo esteja pronto para ser embalado eimplementado. O sam build constrói quaisquer dependências que a sua aplicação tenha e copia ocódigo fonte da sua aplicação para pastas em .aws-sam/build para ser comprimido e carregado paraLambda.

Pode ver a seguinte árvore de nível superior sob .aws-sam:

.aws_sam/ ### build/ ### HelloWorldFunction/ ### template.yaml

HelloWorldFunction é um diretório que contém o seu app.py ficheiro, bem como dependências deterceiros que a sua aplicação utiliza.

Etapa 3 Expanda a sua aplicação na nuvem AWSComando a ser executado:

sam deploy --guided

Siga as instruções na tela. Só é possível responder com Enter para aceitar as opções padrão fornecidasna experiência interativa.

Note

Para o prompt HelloWorldFunction may not have authorization defined, Isthis okay? [y/N] AWS SAM está a informá-lo de que a aplicação de amostras configura umAPI Gateway API sem autorização. Quando expandir a aplicação de amostras, AWS SAM cria umURL disponível publicamente.Pode reconhecer esta notificação respondendo "Y" à saudação. Para obter informações sobreconfigurar autorização, consulte Controlo do Acesso a API Gateway API (p. 162).

Exemplo de resultado:

Deploying with following values =============================== Stack name : sam-app Region : us-east-1 Confirm changeset : False Deployment s3 bucket : sam-bucket Capabilities : ["CAPABILITY_IAM"] Parameter overrides : {}

15

Page 21: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Etapa 3 Expanda a sua aplicação na nuvem AWS

Initiating deployment =====================

Waiting for changeset to be created..

CloudFormation stack changeset --------------------------------------------------------------------------------------------------------------------------------------------------- Operation LogicalResourceId ResourceType --------------------------------------------------------------------------------------------------------------------------------------------------- + Add HelloWorldFunctionHelloWorldPermissionProd AWS::Lambda::Permission + Add ServerlessRestApiDeployment47fc2d5f9d AWS::ApiGateway::Deployment + Add ServerlessRestApiProdStage AWS::ApiGateway::Stage + Add ServerlessRestApi AWS::ApiGateway::RestApi * Modify HelloWorldFunctionRole AWS::IAM::Role * Modify HelloWorldFunction AWS::Lambda::Function ---------------------------------------------------------------------------------------------------------------------------------------------------

2019-11-21 14:33:24 - Waiting for stack create/update to complete

CloudFormation events from changeset ------------------------------------------------------------------------------------------------------------------------------------------------- ResourceStatus ResourceType LogicalResourceId ResourceStatusReason ------------------------------------------------------------------------------------------------------------------------------------------------- UPDATE_IN_PROGRESS AWS::IAM::Role HelloWorldFunctionRole - UPDATE_COMPLETE AWS::IAM::Role HelloWorldFunctionRole - UPDATE_IN_PROGRESS AWS::Lambda::Function HelloWorldFunction - UPDATE_COMPLETE AWS::Lambda::Function HelloWorldFunction - CREATE_IN_PROGRESS AWS::ApiGateway::RestApi ServerlessRestApi - CREATE_COMPLETE AWS::ApiGateway::RestApi ServerlessRestApi - CREATE_IN_PROGRESS AWS::ApiGateway::RestApi ServerlessRestApi Resource creation Initiated CREATE_IN_PROGRESS AWS::ApiGateway::Deployment ServerlessRestApiDeployment47fc2d5 Resource creation Initiated f9d CREATE_IN_PROGRESS AWS::Lambda::Permission HelloWorldFunctionHelloWorldPermis Resource creation Initiated sionProd CREATE_IN_PROGRESS AWS::Lambda::Permission HelloWorldFunctionHelloWorldPermis - sionProd CREATE_IN_PROGRESS AWS::ApiGateway::Deployment ServerlessRestApiDeployment47fc2d5 - f9dCREATE_COMPLETE AWS::ApiGateway::Deployment ServerlessRestApiDeployment47fc2d5 - f9d CREATE_IN_PROGRESS AWS::ApiGateway::Stage ServerlessRestApiProdStage - CREATE_IN_PROGRESS AWS::ApiGateway::Stage ServerlessRestApiProdStage Resource creation Initiated CREATE_COMPLETE AWS::ApiGateway::Stage ServerlessRestApiProdStage -

16

Page 22: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Etapa 4. Testar a sua candidatura localmente (opcional)

CREATE_COMPLETE AWS::Lambda::Permission HelloWorldFunctionHelloWorldPermis - sionProd UPDATE_COMPLETE_CLEANUP_IN_PROGRES AWS::CloudFormation::Stack sam-app - S UPDATE_COMPLETE AWS::CloudFormation::Stack sam-app - -------------------------------------------------------------------------------------------------------------------------------------------------

Stack sam-app outputs: --------------------------------------------------------------------------------------------------------------------------------------------------- OutputKey-Description OutputValue --------------------------------------------------------------------------------------------------------------------------------------------------- HelloWorldFunctionIamRole - Implicit IAM Role created for Hello World arn:aws:iam::123456789012:role/sam-app- function HelloWorldFunctionRole-104VTJ0TST7M0 HelloWorldApi - API Gateway endpoint URL for Prod stage for Hello World https://0ks2zue0zh.execute-api.us-east-1.amazonaws.com/Prod/hello/ function HelloWorldFunction - Hello World Lambda Function ARN arn:aws:lambda:us-east-1:123456789012:function:sam-app- HelloWorldFunction-1TY92MJX0BXU5 ---------------------------------------------------------------------------------------------------------------------------------------------------

Successfully created/updated stack - sam-app in us-east-1

O que o AWS SAM está fazendo:

Este comando implanta o aplicativo na Nuvem AWS. É preciso os artefactos de expansão que constróicom o sam build , pacotes e uploads para um Amazon S3 balde criado por AWS SAM CLI e implementaa aplicação utilizando AWS CloudFormation. Na saída do comando de implantação, é possível ver asalterações que estão sendo feitas na pilha do AWS CloudFormation.

Se a sua aplicação criou um parâmetro HTTP, as Saídas geradas por sam deploy também lhe mostraráo URL de endpoint para a sua aplicação de teste. Pode usar curl para enviar um pedido para a suaaplicação utilizando esse URL de avaliação final. Por exemplo, .

curl https://<restapiid>.execute-api.us-east-1.amazonaws.com/Prod/hello/

Deve ver a saída como o seguinte após a implementação bem sucedida da sua candidatura:

{"message": "hello world"}

Se vir {"message": "hello world"} depois de executar o curl comando, significa que implementoucom sucesso a sua aplicação sem servidor para AWS e está a ligar para o seu Lambda função. Casocontrário, consulte o Troubleshooting (p. 20) mais adiante neste tutorial.

Etapa 4. Testar a sua candidatura localmente(opcional)Quando está a desenvolver a sua candidatura, pode também considerar útil testar localmente. O AWSSAM A CLI fornece o sam local para executar a sua aplicação utilizando contentores Acoplador quesimulam o ambiente de execução de Lambda. Existem duas opções para o fazer:

17

Page 23: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Etapa 4. Testar a sua candidatura localmente (opcional)

• Organize a sua API localmente• Invoque directamente a sua função Lambda

Este passo descreve ambas as opções.

Organize a sua API localmenteComando a ser executado:

sam local start-api

Exemplo de resultado:

2019-07-12 15:27:58 Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET] 2019-07-12 15:27:58 You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. You only need to restart SAM CLI if you update your AWS SAM template 2019-07-12 15:27:58 * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)

Fetching lambci/lambda:python3.7 Docker container image...................................................................................................................................................................................... 2019-07-12 15:28:56 Mounting /<working-development-path>/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container START RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 Version: $LATEST END RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 REPORT RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 Duration: 4.42 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 22 MB 2019-07-12 15:28:58 No Content-Type given. Defaulting to 'application/json'. 2019-07-12 15:28:58 127.0.0.1 - - [12/Jul/2019 15:28:58] "GET /hello HTTP/1.1" 200 -

Pode demorar algum tempo até que a imagem do acoplador carregue. Depois de carregado, pode utilizarcurl para enviar um pedido para a sua aplicação que está a ser executada no seu anfitrião local:

curl http://127.0.0.1:3000/hello

Exemplo de resultado:

2019-07-12 15:29:57 Invoking app.lambda_handler (python3.7) 2019-07-12 15:29:57 Found credentials in shared credentials file: ~/.aws/credentials

Fetching lambci/lambda:python3.7 Docker container image...... 2019-07-12 15:29:58 Mounting /<working-development-path>/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container START RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 Version: $LATEST END RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 REPORT RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 Duration: 7.92 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 22 MB {"statusCode":200,"body":"{\"message\": \"hello world\"}"}

O que o AWS SAM está fazendo:

O start-api o comando inicia um parâmetro de avaliação local que replica o seu endpoint REST API.Descarrega um recipiente de execução que pode gerir localmente a sua função em. O resultado final é amesma saída que viu quando ligou para a sua função na Nuvem AWS.

18

Page 24: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Etapa 4. Testar a sua candidatura localmente (opcional)

Fazer invocações únicasComando a ser executado:

sam local invoke "HelloWorldFunction" -e events/event.json

Exemplo de resultado:

2019-07-01 14:08:42 Found credentials in shared credentials file: ~/.aws/credentials 2019-07-01 14:08:42 Invoking app.lambda_handler (python3.7)

Fetching lambci/lambda:python3.7 Docker container image............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 2019-07-01 14:09:39 Mounting /<working-development-path>/sam-app/.aws-sam/build/HelloWorldFunction as /var/task:ro,delegated inside runtime container START RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 Version: $LATEST END RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 REPORT RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 Duration: 3.51 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 22 MB {"statusCode":200,"body":"{\"message\": \"hello world\"}"}

O que o AWS SAM está fazendo:

O invoke o comando invoca diretamente o seu Lambda funções e pode passar os carregamentos deeventos de entrada que fornece. Com este comando, passa a carga do evento no ficheiro event.jsonque é fornecido pela aplicação de amostras.

A sua aplicação inicializada veio com uma predefinição aws-proxy evento para API Gateway. Um númerode valores é pré-preenchido para si. Neste caso, o HelloWorldFunction não se preocupa com osvalores particulares, pelo que um pedido de apoio está OK. Pode especificar um número de valores aserem substituídos no pedido para simular o que esperaria de um pedido real. Segue-se um exemplo degerar o seu próprio evento de entrada e comparar a saída com a predefinição event.json objeto:

sam local generate-event apigateway aws-proxy --body "" --path "hello" --method GET > api-event.jsondiff api-event.json event.json

Exemplo de resultado:

< "body": "", --- > "body": "{\"message\": \"hello world\"}", 4,6c4,6 < "path": "/hello", < "httpMethod": "GET", < "isBase64Encoded": true, --- > "path": "/path/to/resource", > "httpMethod": "POST", > "isBase64Encoded": false, 11c11 < "proxy": "/hello" --- > "proxy": "/path/to/resource" 56c56 < "path": "/prod/hello", ---

19

Page 25: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Troubleshooting

> "path": "/prod/path/to/resource", 58c58 < "httpMethod": "GET", --- > "httpMethod": "POST",

TroubleshootingErro de CLI: "Restrições de segurança não satisfeitas"Ao executar sam deploy --guided, é-lhe solicitado a pergunta HelloWorldFunction may nothave authorization defined, Is this okay? [y/N]. Se responder a esta mensagem com"N" (a resposta predefinida), verá o seguinte erro:

Error: Security Constraints Not Satisfied

A mensagem está a informá-lo de que a aplicação que está prestes a implementar pode ter um APIGateway API configurada sem autorização. Ao responder "N" a esta mensagem (a predefinição), está adizer que não está OK.

Para resolver isto, tem as seguintes opções:

• Configure a sua candidatura com autorização. Para obter informações sobre configurar autorização,consulte Controlo do Acesso a API Gateway API (p. 162).

• Responda a esta pergunta com "Y" para indicar que está bem com a implementação de uma aplicaçãoque tem um API Gateway API configurada sem autorização.

SAM CLI erro: "nenhuma opção deste tipo: --modelo da app"Ao executar sam init, você verá o seguinte erro:

Error: no such option: --app-template

Isso significa que você está usando uma versão mais antiga da CLI do AWS SAM que não é compatívelcom o parâmetro --app-template. Para corrigir isso, é possível atualizar a versão da CLI do AWS SAMpara 0.33.0 ou posterior ou omitir o parâmetro --app-template do comando sam init.

Erro da CLI do SAM: "no such option: --guided" (não existe essaopção: --guided)Ao executar sam deploy, você verá o seguinte erro:

Error: no such option: --guided

Isso significa que você está usando uma versão mais antiga da CLI do AWS SAM que não é compatívelcom o parâmetro --guided. Para corrigir isso, é possível atualizar a versão da CLI do AWS SAM para0.33.0 ou posterior ou omitir o parâmetro --guided do comando sam deploy.

20

Page 26: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Troubleshooting

Erro de CLI: "Falha ao criar recursos geridos: Não é possívellocalizar credenciais"Ao executar sam deploy, você verá o seguinte erro:

Error: Failed to create managed resources: Unable to locate credentials

Isso significa que você não configurou credenciais da AWS para permitir que a CLI do AWS SAM façachamadas de serviço da AWS. Para corrigir isso, é necessário configurar credenciais da AWS. Para obtermais informações, consulte Configurar credenciais AWS (p. 11).

Erro de CLI: "Executar projectos SAM localmente requeracoplador. Já instalou?"Ao executar sam local start-api, você verá o seguinte erro:

Error: Running AWS SAM projects locally requires Docker. Have you got it installed?

Isto significa que não tem acoplador devidamente instalado. O acoplador é necessário para testar a suacandidatura localmente. Para resolver isto, siga as instruções de instalação do acoplador para o seuanfitrião de desenvolvimento.

Para obter instruções sobre como instalar o acoplador no seu anfitrião de desenvolvimento, aceda a Comoinstalar a CLI do AWS SAM (p. 3), escolha a plataforma adequada e siga as instruções na secçãointitulada Instalar acoplador.

Erro de curvatura: Token de autenticação ausente.Ao tentar invocar o API Gateway endpoint, verá o seguinte erro:

{"message":"Missing Authentication Token"}

Isto significa que tentou enviar um pedido para o domínio correto, mas o URI não é reconhecível. Paracorrigir isto, verifique o URL completo e actualize o curl com o URL correto.

Curl de erro: "curl: (6) Não foi possível resolver:..."Ao tentar invocar o API Gateway endpoint, verá o seguinte erro:

curl: (6) Could not resolve: endpointdomain (Domain name not found)

Isto significa que tentou enviar um pedido para um domínio inválido. Isto pode acontecer se a suaaplicação sem servidor não for implementada com êxito, ou se tiver um erro no seu curl comando.Verifique se a aplicação foi implementada com sucesso utilizando o AWS CloudFormation consola ou AWSCLI, e que o seu curl comando está correto.

21

Page 27: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Limpeza

LimpezaSe você não precisar mais dos recursos da AWS criados durante a execução deste tutorial, poderáremovê-los excluindo a pilha do AWS CloudFormation que você implantou.

Para excluir a pilha do AWS CloudFormation criada com este tutorial usando o Console de gerenciamentoda AWS, siga estas etapas:

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS CloudFormation emhttps://console.aws.amazon.com/cloudformation.

2. No painel de navegação à esquerda, selecioneStacks (Pilhas).3. Na lista de pilhas, escolha sam-app (ou o nome da pilha criada).4. Escolha Delete.

Quando concluído, o status da pilha será alterado para DELETE_COMPLETE.

Como alternativa, é possível excluir a pilha do AWS CloudFormation executando o seguinte comando daAWS CLI:

aws cloudformation delete-stack --stack-name sam-app --region region

Verificar pilha excluídaPara os dois métodos de exclusão da pilha do AWS CloudFormation, é possível verificar se ela foi excluídaacessando o https://console.aws.amazon.com/cloudformation, escolhendo Pilhas no painel de navegaçãoesquerdo e escolhendo Excluídas no menu suspenso à direita da caixa de texto de pesquisa. Você verá onome da pilha sam-app (ou o nome da pilha criada) na lista de pilhas excluídas.

ConclusionNeste tutorial, fez o seguinte:

1. Criado, construído e implementado uma aplicação sem servidor para AWS com AWS SAM.2. Testou a sua candidatura localmente utilizando o AWS SAM CLI e acoplador.3. Eliminado os recursos AWS que já não necessita.

Próximas etapas:Está agora pronto para começar a construir as suas próprias aplicações usando o AWS SAM CLI.

Para o ajudar a começar, pode transferir qualquer uma das aplicações de exemplo do AWS SAMrepositório de animação. Para aceder a este repositório, consulte AWS SAM exemplos de aplicações.

22

Page 28: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Anatomia do modelo

Modelo de aplicativo sem servidor daAWS (AWS SAM) Especificação

Utiliza o AWS SAM especificação para definir a sua aplicação sem servidor. Esta secção fornece detalhespara o AWS SAM secções de modelos, tipos de recursos, propriedades de recursos, tipos de dados,atributos de recursos, funções intrínsecas e API Gateway extensões que pode utilizar em AWS SAMmodelos.

AWS SAM modelos são uma extensão de AWS CloudFormation modelos, com alguns componentesadicionais que tornam mais fácil trabalhar com. Para a referência completa para AWS CloudFormationmodelos, ver AWS CloudFormation Referência do modelo no Guia do usuário do AWS CloudFormation.

Tópicos• AWS SAM Anatomia do modelo (p. 23)• AWS SAM Referência de recursos e propriedade (p. 29)• Atributos de recursos (p. 149)• Funções intrínsecas (p. 150)• Gerado AWS CloudFormation Recursos (p. 150)• API Gateway Extensões (p. 156)

AWS SAM Anatomia do modeloO formato de um AWS SAM o ficheiro do modelo segue atentamente o formato de um AWSCloudFormation ficheiro do modelo, que é descrito em Anatomia do modelo no Guia do usuário do AWSCloudFormation.

As principais diferenças entre AWS SAM ficheiros de modelos e AWS CloudFormation os ficheiros domodelo são os seguintes:

• Transformar a declaração. A declaração Transform: AWS::Serverless-2016-10-31 é necessáriopara AWS SAM ficheiros de modelos. Esta declaração identifica um AWS CloudFormation ficheiro demodelo como AWS SAM ficheiro de modelo. Para mais informações sobre transformação, consulteTransformar no Guia do usuário do AWS CloudFormation.

• Secção de globais. A secção Globals é única para AWS SAM. Define propriedades que sãocomuns a todas as suas funções e API sem servidor. Todos os AWS::Serverless::Function,AWS::Serverless::Api, e AWS::Serverless::SimpleTable Os recursos herdam aspropriedades definidas na secção Globals. Para mais informações sobre a secção Globals, consulteSecção de Globais do Modelo (p. 25) no Guia do desenvolvedor do Modelo de aplicativo sem servidorda AWS.

• Seção de recursos Em AWS SAM a secção Recursos pode conter uma combinação de AWSCloudFormation recursos e AWS SAM recursos. Para mais informações sobre AWS CloudFormationrecursos, ver Referência dos tipos de recursos e propriedades AWS no Guia do usuário do AWSCloudFormation. Para mais informações sobre AWS SAM recursos ver AWS SAM Referência derecursos e propriedade (p. 29) no Guia do desenvolvedor do Modelo de aplicativo sem servidor daAWS.

Todas as outras secções de um AWS SAM o ficheiro do modelo corresponde ao AWS CloudFormationsecção ficheiro do modelo do mesmo nome.

23

Page 29: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

YAML

YAMLO 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 modeloOs modelos incluem várias seções principais. Transform e Resources são as únicas secçõesnecessárias.

As secções num modelo podem estar em qualquer ordem. No entanto, à medida que constrói o seumodelo, pode ser útil utilizar a ordem lógica apresentada na lista seguinte. Isto porque os valores numasecção podem referir-se aos valores de uma secção anterior.

Transformar (obrigatório)

Para AWS SAM modelos, tem de incluir esta secção com um valor deAWS::Serverless-2016-10-31.

As ligações adicionais são opcionais. Para mais informações sobre transformação, consulteTransformar no Guia do usuário do AWS CloudFormation.

Globais (opcional) (p. 25)

Uma secção no seu AWS SAM modelo para definir propriedades comuns a todas as suasfunções sem servidor, API e tabelas simples. Todos os AWS::Serverless::Function,AWS::Serverless::Api, e AWS::Serverless::SimpleTable Os recursos herdam aspropriedades definidas na secção Globals.

Esta secção é única para AWS SAM. Não existe uma secção correspondente em AWSCloudFormation modelos.

Descrição (opcional)

Uma sequência de texto que descreve o modelo.

24

Page 30: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Próximas etapas:

Esta secção corresponde diretamente à secção Descrição de AWS CloudFormation modelos.Metadata (opcional)

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

Esta secção corresponde diretamente à secção Metadados de AWS CloudFormation modelos.Parameters (optional) [Parâmetros (opcionais)]:

Os valores a serem passados para seu modelo em tempo de execução (ao criar ou atualizar umapilha). Você pode fazer referência a parâmetros nas seções Resources e Outputs do modelo.

Esta secção corresponde diretamente à secção Parameters (Parâmetros) de AWS CloudFormationmodelos.

Mappings (opcional)

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

Esta secção corresponde directamente à secção Mapeamentos de AWS CloudFormation modelos.Conditions (opcional)

As condições que controlam se determinados recursos são criados ou se determinadas propriedadesde 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 testeou de produção.

Esta secção corresponde diretamente à secção Condições de AWS CloudFormation modelos.Resources (obrigatório)

Especifica os recursos da pilha e suas propriedades, como uma instância do Amazon EC2 ou umbucket do Amazon S3. Você pode fazer referência a recursos nas seções Resources e Outputs domodelo.

Esta secção é semelhante à secção Recursos de AWS CloudFormation modelos. Em AWS SAMmodelos, esta secção pode conter AWS SAM para além de AWS CloudFormation recursos.

Outputs (opcional)

Descreve os valores que são retornados sempre que você visualiza as propriedades da pilha. Porexemplo, você pode declarar uma saída para o nome de um bucket do S3 e, em seguida, chamar ocomando da aws cloudformation describe-stacksAWS CLI para visualizar o nome.

Esta secção corresponde diretamente à secção de Saídas de AWS CloudFormation modelos.

Próximas etapas:Para transferir e implementar uma aplicação sem servidor que contenha um AWS SAM ficheiro de modelo,ver Conceitos básicos com AWS SAM (p. 3) e executar o Tutorial Implementar uma aplicação "HelloWorld" (p. 12).

Secção de Globais do ModeloRecursos num AWS SAM modelo tendem a ter configuração partilhada, como Runtime, Memory,VPCConfig, Environment, e Cors. Em vez de duplicar esta informação em todos os recursos, podeescrevê-la uma vez na Globals e deixe os seus recursos herdarem-los.

25

Page 31: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Variáveis globais

O Globals é suportada pelo AWS::Serverless::Function, AWS::Serverless::Api, eAWS::Serverless::SimpleTable recursos.

Exemplo:

Globals: Function: Runtime: nodejs12.x Timeout: 180 Handler: index.handler Environment: Variables: TABLE_NAME: data-table

Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: Environment: Variables: MESSAGE: "Hello From SAM"

ThumbnailFunction: Type: AWS::Serverless::Function Properties: Events: Thumbnail: Type: Api Properties: Path: /thumbnail Method: POST

Neste exemplo, ambos HelloWorldFunction e ThumbnailFunction utilize "nodejs12.x" paraRuntime, "180" segundos para Timeout, e "index.handler" para Handler. HelloWorldFunctionadiciona a variável do ambiente MESSAGE, para além da TABELA_NAME herdada.ThumbnailFunction favorece todos os Globals propriedades e adiciona uma fonte de evento API.

Recursos e propriedades suportadosAtualmente, AWS SAM apoia os seguintes recursos e propriedades:

Globals: Function: # Properties of AWS::Serverless::Function Handler: Runtime: CodeUri: DeadLetterQueue: Description: MemorySize: Timeout: VpcConfig: Environment: Tags: Tracing: KmsKeyArn: Layers: AutoPublishAlias: DeploymentPreference: PermissionsBoundary: ReservedConcurrentExecutions: EventInvokeConfig:

26

Page 32: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Variáveis globais

Api: # Properties of AWS::Serverless::Api # Also works with Implicit APIs Auth: Name: DefinitionUri: CacheClusterEnabled: CacheClusterSize: Variables: EndpointConfiguration: MethodSettings: BinaryMediaTypes: MinimumCompressionSize: Cors: GatewayResponses: AccessLogSetting: CanarySetting: TracingEnabled: OpenApiVersion: Domain:

HttpApi: # Properties of AWS::Serverless::HttpApi # Also works with Implicit APIs Auth: CorsConfiguration: AccessLogSettings: Tags: DefaultRouteSettings: RouteSettings: Domain:

SimpleTable: # Properties of AWS::Serverless::SimpleTable SSESpecification:

API implícitaAPI implícita são api criadas por AWS SAM quando declarar uma API no Events secção. Pode usarGlobals para substituir todas as propriedades das API implícitas.

Propriedades não suportadasAs seguintes propriedades não são suportadas no Globals secção. Fizemos a chamada explícita paranão os apoiar porque tornaram o modelo difícil de compreender ou podem abrir um potencial problema desegurança.

Function: Role: Policies: FunctionName: Events:

Api: StageName: DefinitionBody:

HttpApi: StageName: DefinitionBody: DefinitionUri:

27

Page 33: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Variáveis globais

Propriedades supridáveisPropriedades declaradas no Globals pode ser substituído pelo recurso. Por exemplo, pode adicionarnovas variáveis a um mapa de variáveis do ambiente, ou pode sobrepor as variáveis globalmentedeclaradas. Mas o recurso não pode remover uma propriedade especificada no mapa de variáveis doambiente Globals. Mais geralmente, a secção Globals declara propriedades que são partilhadas portodos os seus recursos. Alguns recursos podem fornecer novos valores para propriedades declaradasglobalmente, mas não conseguem removê-las completamente. Se alguns recursos utilizarem umapropriedade mas outros não, então não os deve declarar na secção Globals.

As secções que se seguem descrevem como funciona o desempenho para diferentes tipos de dados.

Os tipos de dados primitivos são substituídosOs tipos de dados primitivos incluem cadeias, números, Exans, etc.

O valor especificado na secção Recursos substitui o valor na secção Globals.

Exemplo:

Globals: Function: Runtime: nodejs12.x

Resources: MyFunction: Type: AWS::Serverless::Function Properties: Runtime: python3.6

O Runtime para MyFunction está definido para python3.6.

Os mapas são fundidosOs mapas são também conhecidos como dicionários ou colecções de pares de valor-chave.

As entradas de mapa no recurso são agrupado com entradas de mapas globais. Se existirem duplicados, aentrada de recursos substitui a entrada global.

Exemplo:

Globals: Function: Environment: Variables: STAGE: Production TABLE_NAME: global-table

Resources: MyFunction: Type: AWS::Serverless::Function Properties: Environment: Variables: TABLE_NAME: resource-table NEW_VAR: hello

As variáveis ambientais de MyFunction estão definidos para o seguinte:

{

28

Page 34: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Referência de propriedades e recursos

"STAGE": "Production", "TABLE_NAME": "resource-table", "NEW_VAR": "hello"}

As listas são aditivos

As listas também são conhecidas como matrizes.

As entradas na secção Globals são pré-pensado na lista na secção Recursos.

Exemplo:

Globals: Function: VpcConfig: SecurityGroupIds: - sg-123 - sg-456

Resources: MyFunction: Type: AWS::Serverless::Function Properties: VpcConfig: SecurityGroupIds: - sg-first

O SecurityGroupIds para MyFunction's VpcConfig estão definidos para o seguinte:

[ "sg-123", "sg-456", "sg-first" ]

AWS SAM Referência de recursos e propriedadeEsta secção contém informações de referência para o AWS SAM tipos de recursos e propriedades.

Tópicos• AWS::Serverless::Api (p. 29)• AWS::sem servidor::aplicação (p. 58)• AWS::Serverless::Function (p. 62)• AWS::sem servidor::httpapi (p. 113)• AWS::sem servidor::layerversion (p. 128)• AWS::Serverless::SimpleTable (p. 132)• AWS::Serverless::StateMachine (p. 135)

AWS::Serverless::ApiCria uma coleção de recursos e métodos do Amazon API Gateway que podem ser invocados através dosparâmetros de avaliação HTTPS.

Um AWS::Serverless::Api (p. 29) o recurso não necessita de ser explicitamente adicionado a ummodelo de definição de aplicação sem servidor AWS. Um recurso deste tipo é criado implicitamente a

29

Page 35: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

partir da união de eventos da API definidos em AWS::Serverless::Function (p. 62) recursos definidos nomodelo que não se referem a AWS::Serverless::Api (p. 29) recurso.

Um AWS::Serverless::Api (p. 29) o recurso deve ser utilizado para definir e documentar a API utilizandoo openapi, o que proporciona mais capacidade para configurar os recursos subjacentes do Amazon APIGateway.

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Type: AWS::Serverless::ApiProperties: AccessLogSetting: AccessLogSetting Auth: ApiAuth (p. 37) BinaryMediaTypes: List CacheClusterEnabled: Boolean CacheClusterSize: String CanarySetting: CanarySetting Cors: String | CorsConfiguration (p. 53) DefinitionBody: String DefinitionUri: String | ApiDefinition (p. 52) Domain: DomainConfiguration (p. 55) EndpointConfiguration: EndpointConfiguration GatewayResponses: Map MethodSettings: MethodSettings MinimumCompressionSize: Integer Models: Map Name: String OpenApiVersion: String StageName: String Tags: Map TracingEnabled: Boolean Variables: Map

PropertiesAccessLogSetting

Configura a definição do registo de acesso para uma fase.

Type: AccessLogSetting

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oAccessLogSetting propriedade de um AWS::ApiGateway::Stage recurso.

Auth

Configurar autorização para controlar o acesso ao seu API Gateway API.

Para mais informações sobre configurar o acesso utilizando AWS SAM ver Controlo do Acesso a APIGateway API (p. 162) no Guia do desenvolvedor do Modelo de aplicativo sem servidor da AWS.

Type: apidante (p. 37)

Obrigatório: Não

30

Page 36: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

BinaryMediaTypes

Lista de tipos MIME que a sua API pode devolver. Utilize isto para ativar o suporte binário para as API.Utilize ~1 em vez de / nos tipos de mime.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à BinaryMediaTypespropriedade de um AWS::ApiGateway::RestApi recurso. A lista de binarymediatypes é adicionadaao AWS CloudFormation e o documento openapi.

CacheClusterEnabled

Indica se o clustering de cache está habilitado para a etapa.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oCacheClusterEnabled propriedade de um AWS::ApiGateway::Stage recurso.

CacheClusterSize

O tamanho do cluster de cache da etapa.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oCacheClusterSize propriedade de um AWS::ApiGateway::Stage recurso.

CanarySetting

Configure uma definição de canário para uma fase de implementação regular.

Type: CanarySetting

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oCanarySetting propriedade de um AWS::ApiGateway::Stage recurso.

Cors

Gerir partilha de recursos de Origem Cruzada (CORS) para todas as suas API de Gateway API.Especifique o domínio para permitir uma cadeia ou especifique um dicionário com configuração deCors adicional. OBSERVAÇÃO: O CORS requer AWS SAM para modificar a sua definição de openapi.Portanto, funciona apenas se o openapi inline for definido com o corpo definition.

Para mais informações sobre CORS, consulte Ativar CORS para um API Gateway REST API no Guiada Ferramenta de Desenvolvimento do Amazon API Gateway.

Type: Cadeia | configuração (p. 53)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

31

Page 37: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

DefinitionBody

especificação openapi que descreve a sua API. Se não DefinitionUri nem DefinitionBody , oSAM irá gerar uma DefinitionBody para si com base na configuração do seu modelo.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à Body propriedade de umAWS::ApiGateway::RestApi recurso. Se forem fornecidas determinadas propriedades, o conteúdopode ser inserido ou modificado no organismo definiçãoantes de ser aprovado para a formaçãode turvação. As propriedades incluem Auth, BinaryMediaTypes, Cors, GatewayResponses,Models, e um EventSource de tipo Api ligado para um AWS::Serverless::Function.

DefinitionUri

AWS S3 Uri, caminho de ficheiro local ou objeto de localização do documento openapi definindo aAPI. O objeto AWS S3 esta referência de propriedade tem de ser um ficheiro openapi válido. Se nãoDefinitionUri nem DefinitionBody , o SAM irá gerar uma DefinitionBody para si com basena configuração do seu modelo.

Se for fornecido um caminho de ficheiro local, o modelo deve passar pelo fluxo de trabalho que inclui osam deploy ou sam package comando, para que a definição seja transformada correctamente.

As funções intrínsecas não são suportadas em ficheiros openapi externos referenciados porDefinitionUri. Utilize em vez disso DefinitionBody propriedade com o Incluir transformaçãopara importar uma definição openapi para o modelo.

Type: Cadeia | apidefinição (p. 52)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à BodyS3Locationpropriedade de um AWS::ApiGateway::RestApi recurso. A nestada Amazon S3 as propriedadessão nomeadas de forma diferente.

Domain

Configura um domínio personalizado para este API Gateway API.

Type: configuração domain (p. 55)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

EndpointConfiguration

Uma lista de tipos de endpoint da API.

Type: EndpointConfiguration

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEndpointConfiguration propriedade de um AWS::ApiGateway::RestApi recurso.

GatewayResponses

Configura as respostas de gateway para uma API. As Respostas ao Gateway são respostasdevolvidas pelo Gateway API, directamente ou através da utilização de Autorizadores Lambda. Paramais informações, consulte a documentação do Extensão API Openapi para Respostas Gateway.

32

Page 38: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Type: mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

MethodSettings

Configura todas as definições para a fase API, incluindo Registo, Métricas, cachettl, Throttling.

Type: definições

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMethodSettings propriedade de um AWS::ApiGateway::Stage recurso.

MinimumCompressionSize

Permitir compressão de organismos de resposta com base no cabeçalho de aceitação do cliente.A compressão é acionada quando o tamanho do corpo de resposta é maior ou igual ao limiarconfigurado. O limite máximo do tamanho do corpo é de 10 MB (10 485 760 Bytes). - Os seguintestipos de compressão são suportados: "zip", "esvaziado" e "identidade".

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMinimumCompressionSize propriedade de um AWS::ApiGateway::RestApi recurso.

Models

Os esquemas a utilizar pelos seus métodos API. Estes esquemas podem ser descritos utilizandoJSON ou YLMA. Consulte a secção Exemplos no fundo desta página, por exemplo, modelos.

Type: mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Name

Um nome para o recurso API Gateway restapi

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Namepropriedade de um AWS::ApiGateway::RestApi recurso.

OpenApiVersion

Versão do openapi a utilizar. Isto pode ser 2.0 para a especificação Swagger ou uma das versõesopenapi 3.0, como 3.0.1. Para mais informações sobre a openapi, consulte o Especificação Openapi.

Observação Definir esta propriedade para qualquer valor válido também removerá a fase Stage queSAM cria.

Type: String.

Obrigatório: Não

33

Page 39: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

StageName

O nome da fase, que o Gateway API utiliza como o primeiro segmento do caminho no Identificador deRecursos Uniformes (URI) de invocar.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à StageName propriedadede um AWS::ApiGateway::Stage recurso. É necessário no SAM, mas não é necessário no APIGateway

Notas adicionais: A API implícita tem um nome de estágio de "Prod".Tags

Um mapa (cadeia a cadeia) que especifica as etiquetas a adicionar a esta fase do Gateway API.As teclas e os valores estão limitados a caracteres alfanuméricos. As teclas podem ser 1 a 127caracteres Unicode de comprimento e não podem ser pré-fixados com aws:. Os valores podem ser 1 a255 caracteres Unicode de comprimento.

Type: mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à Tags propriedade de umAWS::ApiGateway::Stage recurso. A propriedade das etiquetas em SAM consiste em Key:Valuepairs (Chave:Pares de valores); na formação de turvação consiste numa lista de objectos Tag(Etiqueta).

TracingEnabled

Indica se o traçado ativo com raios X está activado para a fase.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oTracingEnabled propriedade de um AWS::ApiGateway::Stage recurso.

Variables

Um mapa (cadeia a cadeia) que define as variáveis da fase, onde o nome da variável é a chave eo valor da variável é o valor. Os nomes de variáveis são limitadas a caracteres alfanuméricos. Osvalores devem corresponder a expressão regular a seguir: . [A-Za-z0-9._~:/?#&=,-]+.

Type: mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oVariables propriedade de um AWS::ApiGateway::Stage recurso.

Valores de retornoRefQuando a ID lógica deste recurso é fornecida à função intrínseca Ref, devolve a ID do API Gateway API.

34

Page 40: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Para obter mais informações sobre como usar a função Ref, consulte Ref.

Fn::GetAttFn::GetAtt retorna um valor para um atributo especificado deste tipo. Estes são os atributos disponíveise os valores de retorno de amostra.

Para obter mais informações sobre como usar Fn::GetAtt, consulte Fn::GetAtt.

RootResourceId

O ID de um recurso raiz RestApi, como a0bc123d4e.

ExemplosSimpleApiExampleUm mundo AWS SAM modelo de modelo que contém uma função Lambda com um parâmetro deavaliação da API. Este é um total AWS SAM ficheiro de modelo para uma aplicação sem servidor.

YAML

AWSTemplateFormatVersion: '2010-09-09'Transform: AWS::Serverless-2016-10-31Description: AWS SAM template with a simple API definitionResources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: prod ApiFunction: # Adds a GET api endpoint at "/" to the ApiGatewayApi via an Api event Type: AWS::Serverless::Function Properties: Events: ApiEvent: Type: Api Properties: Path: / Method: get RestApiId: Ref: ApiGatewayApi Runtime: python3.7 Handler: index.handler InlineCode: | def handler(event, context): return {'body': 'Hello World!', 'statusCode': 200}

ApiCorsExampleUm AWS SAM fragmento de modelo com uma API definida num ficheiro Swagger externo juntamentecom integrações Lambda e configurações CORS. Esta é apenas uma parte de um AWS SAM ficheiro demodelo mostrando um AWS::Sem servidor::Definição API. Ver github para o exemplo completo.

YAML

Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: Prod

35

Page 41: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

# Allows www.example.com to call these APIs # SAM will automatically add AllowMethods with a list of methods for this API Cors: "'www.example.com'" DefinitionBody: # Pull in an OpenApi definition from S3 'Fn::Transform': Name: 'AWS::Include' # Replace "bucket" with your bucket name Parameters: Location: s3://bucket/swagger.yaml

ApiCognitoAuthExampleUm AWS SAM modelo de snippet com uma API que utiliza o AWS Cognito para autorizar pedidoscontra a API. Esta é apenas uma parte de um AWS SAM ficheiro de modelo mostrando um AWS::Semservidor::Definição API. Ver github para o exemplo completo.

YAML

Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: Prod Cors: "'*'" Auth: DefaultAuthorizer: MyCognitoAuthorizer Authorizers: MyCognitoAuthorizer: UserPoolArn: Fn::GetAtt: [MyCognitoUserPool, Arn]

ApiModelsExampleUm AWS SAM modelo de snippet com uma API que inclui um esquema de modelos. Esta é apenas umaparte de um AWS SAM ficheiro de modelo, mostrando um AWS::Sem servidor::Definição API com doisesquemas de modelo.

YAML

Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: Prod Models: User: type: object required: - username - employee_id properties: username: type: string employee_id: type: integer department: type: string Item: type: object properties: count: type: integer

36

Page 42: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

category: type: string price: type: integer

ApiAuthConfigurar autorização para controlar o acesso ao seu API Gateway API.

Para mais informações e exemplos para configurar o acesso utilizando AWS SAM ver Controlo do Acessoa API Gateway API (p. 162) no Guia do desenvolvedor do Modelo de aplicativo sem servidor da AWS.

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

AddDefaultAuthorizerToCorsPreflight: Boolean ApiKeyRequired: Boolean Authorizers: CognitoAuthorizer (p. 41) | LambdaTokenAuthorizer (p. 47) | LambdaRequestAuthorizer (p. 44) DefaultAuthorizer: String InvokeRole: String ResourcePolicy: ResourcePolicyStatement (p. 50) UsagePlan: ApiUsagePlan (p. 39)

Properties

AddDefaultAuthorizerToCorsPreflight

Se o DefaultAuthorizer e Cors propriedades definidas e, em seguida, definirAddDefaultAuthorizerToCorsPreflight fará com que o autorizador predefinido seja adicionadoao Options propriedade na secção de openapi.

Type: booliano

Obrigatório: Não

Padrão: Verdadeiro.

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

ApiKeyRequired

Se for definido para verdadeiro, é necessária uma chave API para todos os eventos API. Para maisinformações sobre as chaves API, consulte Criar e utilizar planos de utilização com chaves API noGuia do desenvolvedor do API Gateway.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Authorizers

O autorizador utilizado para controlar o acesso ao seu API Gateway API.

37

Page 43: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Para obter mais informações, consulte Controlo do Acesso a API Gateway API (p. 162) no Guia dodesenvolvedor do Modelo de aplicativo sem servidor da AWS.

Type: atritoautorizador (p. 41) | lambdatokenautorizer (p. 47) | pedidadedepedido (p. 44)

Obrigatório: Não

Padrão: Nenhum

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Notas adicionais: SAM adiciona os Autorizadores à definição openapi de uma Api.DefaultAuthorizer

Especifique um autorizador predefinido para um API Gateway API, que será utilizado para autorizarchamadas API por predefinição.

Observação Se a fonte de evento da API para a função associada a esta API estiver configuradapara utilizar as Permissões IAM, esta propriedade deve ser definida para AWS_IAM, caso contrário,resultará em erro.

Type: String.

Obrigatório: Não

Padrão: Nenhum

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

InvokeRole

Define as credenciais de integração para todos os recursos e métodos para este valor.

Valores compatíveis CALLER_CREDENTIALS, NONE, IAM Função Arn.

CALLER_CREDENTIALS mapas para arn:aws:iam::*:user/*, que utiliza as credenciais dechamador para invocar o parâmetro de avaliação.

Type: String.

Obrigatório: Não

Padrão: CALLER_CREDENTIALS

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

ResourcePolicy

Configurar a Política de Recursos para todos os métodos e caminhos numa API.

Type: declaração de resourcepolicy (p. 50)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Notas adicionais: Esta definição também pode ser definida individualmenteAWS::Serverless::Function usando o ApiFunctionAuth (p. 83). Isto é necessário para as APIcom EndpointConfiguration: PRIVATE.

38

Page 44: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

UsagePlan

Configura um plano de utilização associado a esta API. Para mais informações sobre os planos deutilização, consulte Criar e utilizar planos de utilização com chaves API no Guia do desenvolvedor doAPI Gateway.

Isto AWS SAM a propriedade gera três AWS CloudFormation recursos quando esta propriedadeestá definida: AWS::apigateway::usageplan, um AWS::apigateway::usageplankey, e umAWS::apigateway::apikey. Para obter informações sobre este cenário, consulte A Propriedade doPlano Está Especificada (p. 153). Para informações gerais sobre a geração AWS CloudFormationrecursos, ver Gerado AWS CloudFormation Recursos (p. 150).

Type: plano de peususação (p. 39)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

CognitoAuth

Exemplo da entidade Cognito

YAML

Auth: Authorizers: MyCognitoAuth: UserPoolArn: Fn::GetAtt: - MyUserPool - Arn AuthType: "COGNITO_USER_POOLS" DefaultAuthorizer: MyCognitoAuth InvokeRole: CALLER_CREDENTIALS AddDefaultAuthorizerToCorsPreflight: false ApiKeyRequired: false ResourcePolicy: CustomStatements: [{ "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/Prod/GET/pets", "Condition": { "IpAddress": { "aws:SourceIp": "1.2.3.4" } } }] IpRangeBlacklist: - "10.20.30.40"

ApiUsagePlan

Configura um plano de utilização para um API Gateway API. Para mais informações sobre os planos deutilização, consulte Criar e utilizar planos de utilização com chaves API no Guia do desenvolvedor do APIGateway.

39

Page 45: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

CreateUsagePlan: String Description: String Quota: QuotaSettings Tags: List Throttle: ThrottleSettings UsagePlanName: String

Properties

CreateUsagePlan

Determina a forma como este plano de utilização está configurado. Os valores válidos são: PER_API,SHARED e NONE.

PER_API cria AWS::apigateway::usageplan, AWS::apigateway::apikey, eAWS::apigateway::usageplankey recursos específicos desta API. Estes recursos têm Idslógicas de <api-logical-id>UsagePlan, <api-logical-id>ApiKey, e <api-logical-id>UsagePlanKey, respetivamente.

SHARED cria AWS::apigateway::usageplan, AWS::apigateway::apikey, eAWS::apigateway::usageplankey recursos partilhados em qualquer API que também tenhaCreateUsagePlan: SHARED no mesmo AWS SAM modelo. Estes recursos têm Ids lógicas deServerlessUsagePlan, ServerlessApiKey, e ServerlessUsagePlanKey, respetivamente.Se utilizar esta opção, recomendamos que adicione uma configuração adicional para este plano deutilização em apenas um recurso API para evitar definições contraditórias e um estado incerto.

NONE desactiva a criação ou associação de um plano de utilização com esta API. Isto só é necessáriose SHARED ou PER_API está especificado no Secção de Globais do Modelo (p. 25).

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Description

Uma descrição do plano de uso.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDescription propriedade de um AWS::ApiGateway::UsagePlan recurso.

Quota

Configura o número de solicitações que os usuários podem fazer em um determinado intervalo.

Type: QuotaSettings

Obrigatório: Não

40

Page 46: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Quotapropriedade de um AWS::ApiGateway::UsagePlan recurso.

Tags

Uma matriz de tags arbitrárias (pares de chave-valor) a ser associada ao plano de uso.

Esta propriedade utiliza o tipo de etiqueta de cloudformation.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Tagspropriedade de um AWS::ApiGateway::UsagePlan recurso.

Throttle

Configura a taxa de solicitações geral (média de solicitações por segundo) e capacidade deintermitência.

Type: ThrottleSettings

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oThrottle propriedade de um AWS::ApiGateway::UsagePlan recurso.

UsagePlanName

Um nome para o plano de uso.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oUsagePlanName propriedade de um AWS::ApiGateway::UsagePlan recurso.

Exemplos

UsagePlan

Segue-se um exemplo de plano de utilização.

YAML

Auth: UsagePlan: CreateUsagePlan: PER_API Description: Usage plan for this API Quota: Limit: 500 Period: MONTH Throttle: BurstLimit: 100 RateLimit: 50 Tags: - Key: TagName Value: TagValue

CognitoAuthorizerDefina um autorizador do grupo de utilizadores Amazon Cognito.

41

Page 47: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Para mais informações e exemplos, consulte Controlo do Acesso a API Gateway API (p. 162) no Guia dodesenvolvedor do Modelo de aplicativo sem servidor da AWS.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

AuthorizationScopes: List Identity: CognitoAuthorizationIdentity (p. 43) UserPoolArn: String

Properties

AuthorizationScopes

Lista de âmbitos de autorização para este autorizador.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Identity

Esta propriedade pode ser usada para especificar um IdentitySource num pedido recebido paraum autorizador

Type: identificaçãodeautorizaçãode identidade (p. 43)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

UserPoolArn

Pode referir-se a um grupo de utilizadores/especificar um grupo de utilizadores ao qual pretendeadicionar este autorizador cognito

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

CognitoAuth

Exemplo da entidade Cognito

YAML

Auth:

42

Page 48: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Authorizers: MyCognitoAuth: AuthorizationScopes: - scope1 - scope2 UserPoolArn: Fn::GetAtt: - MyCognitoUserPool - Arn Identity: Header: MyAuthorizationHeader ValidationExpression: myauthvalidationexpression

CognitoAuthorizationIdentity

Esta propriedade pode ser usada para especificar uma fonte de identidadenum pedido de entrada deum autorizador. Para obter mais informações sobre a fonte de identidadeconsulte o Extensão de API doAutorizador Hydraer.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Header: String ReauthorizeEvery: Integer ValidationExpression: String

Properties

Header

Especifique o nome do cabeçalho para Autorização na definição openapi.

Type: String.

Obrigatório: Não

Padrão: Autorização, *

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

ReauthorizeEvery

O período de vida útil (TTL), em segundos, que especifica por quanto tempo o API Gatewayarmazena em cache os resultados do autorizador. Se você especificar um valor maior que 0, o APIGateway armazenará em cache as respostas do autorizador. Por padrão, o API Gateway define essapropriedade como 300. O valor máximo é 3600, ou uma hora.

Type: inteiro

Obrigatório: Não

Padrão: 300

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

43

Page 49: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

ValidationExpression

Especificar uma expressão de validação para validar a Identidade de entrada

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

CognitoAuthIdentity

YAML

Identity: Header: MyCustomAuthHeader ValidationExpression: Bearer.* ReauthorizeEvery: 30

LambdaRequestAuthorizerConfigure um Autorizador Lambda para controlar o acesso à sua API com uma função Lambda.

Para mais informações e exemplos, consulte Controlo do Acesso a API Gateway API (p. 162) no Guia dodesenvolvedor do Modelo de aplicativo sem servidor da AWS.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

AuthorizationScopes: List FunctionArn: String FunctionInvokeRole: String FunctionPayloadType: String Identity: LambdaRequestAuthorizationIdentity (p. 46)

Properties

AuthorizationScopes

Lista de âmbitos de autorização para este autorizador.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

FunctionArn

Especifique a função cercada da função Lambda que fornece autorização para a API.

Type: String.

44

Page 50: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

FunctionInvokeRole

Adiciona credenciais de autorização à definição openapi do autorizador Lambda.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

FunctionPayloadType

Esta propriedade pode ser utilizada para definir o tipo de agente de autorização Lambda para umaAPI.

Valores compatíveis TOKEN e REQUEST.

Type: String.

Obrigatório: Não

Padrão: TOKEN

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Identity

Esta propriedade pode ser usada para especificar um IdentitySource num pedido recebido paraum autorizador

Type: identificação de doredodepedido de trabalho (p. 46)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

LambdaRequestAuth

YAML

Authorizer: MyLambdaRequestAuth: FunctionPayloadType: REQUEST FunctionArn: Fn::GetAtt: - MyAuthFunction - Arn FunctionInvokeRole: Fn::GetAtt: - LambdaAuthInvokeRole - Arn Identity: Headers:

45

Page 51: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

- Authorization1

LambdaRequestAuthorizationIdentity

Esta propriedade pode ser usada para especificar uma fonte de identidadenum pedido de entrada deum autorizador. Para obter mais informações sobre a fonte de identidadeconsulte o Extensão de API doAutorizador Hydraer.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Context: List Headers: List QueryStrings: List ReauthorizeEvery: Integer StageVariables: List

Properties

Context

Converte as cadeias de contexto dadas às expressões de mapeamento do formatocontext.contextString.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Headers

Converte os cabeçalhos para a cadeia separada por vírgulas de expressões de mapeamento deformato method.request.header.name.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

QueryStrings

Converte as cadeias de consulta fornecidas para cadeias separadas por vírgulas de formatação deformato method.request.querystring.queryString.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

ReauthorizeEvery

O período de vida útil (TTL), em segundos, que especifica por quanto tempo o API Gatewayarmazena em cache os resultados do autorizador. Se você especificar um valor maior que 0, o API

46

Page 52: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Gateway armazenará em cache as respostas do autorizador. Por padrão, o API Gateway define essapropriedade como 300. O valor máximo é 3600, ou uma hora.

Type: inteiro

Obrigatório: Não

Padrão: 300

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

StageVariables

Converte as variáveis das fases atribuídas para a cadeia de caracteres separados por vírgulas deformato stageVariables.stageVariable.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

LambdaRequestIdentity

YAML

Identity: QueryStrings: - auth Headers: - Authorization StageVariables: - VARIABLE Context: - authcontext ReauthorizeEvery: 100

LambdaTokenAuthorizer

Configure um Autorizador Lambda para controlar o acesso à sua API com uma função Lambda.

Para mais informações e exemplos, consulte Controlo do Acesso a API Gateway API (p. 162) no Guia dodesenvolvedor do Modelo de aplicativo sem servidor da AWS.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

AuthorizationScopes: List FunctionArn: String FunctionInvokeRole: String FunctionPayloadType: String

47

Page 53: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Identity: LambdaTokenAuthorizationIdentity (p. 49)

Properties

AuthorizationScopes

Lista de âmbitos de autorização para este autorizador.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

FunctionArn

Especifique a função cercada da função Lambda que fornece autorização para a API.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

FunctionInvokeRole

Adiciona credenciais de autorização à definição openapi do autorizador Lambda.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

FunctionPayloadType

Esta propriedade pode ser utilizada para definir o tipo de agente de autorização Lambda para umaApi.

Valores compatíveis TOKEN e REQUEST.

Type: String.

Obrigatório: Não

Padrão: TOKEN

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Identity

Esta propriedade pode ser usada para especificar um IdentitySource num pedido recebido paraum autorizador.

Type: lambdatokenautorizationidentity (p. 49)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

48

Page 54: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Exemplos

LambdaTokenAuth

YAML

Authorizers: MyLambdaTokenAuth: FunctionArn: Fn::GetAtt: - MyAuthFunction - Arn Identity: Header: MyCustomAuthHeader # OPTIONAL; Default: 'Authorization' ValidationExpression: mycustomauthexpression # OPTIONAL ReauthorizeEvery: 20 # OPTIONAL; Service Default: 300

BasicLambdaTokenAuth

YAML

Authorizers: MyLambdaTokenAuth: FunctionArn: Fn::GetAtt: - MyAuthFunction - Arn

LambdaTokenAuthorizationIdentity

Esta propriedade pode ser usada para especificar uma fonte de identidadenum pedido de entrada deum autorizador. Para obter mais informações sobre a fonte de identidadeconsulte o Extensão de API doAutorizador Hydraer.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

ReauthorizeEvery: Integer ValidationExpression: String

Properties

ReauthorizeEvery

O período de vida útil (TTL), em segundos, que especifica por quanto tempo o API Gatewayarmazena em cache os resultados do autorizador. Se você especificar um valor maior que 0, o APIGateway armazenará em cache as respostas do autorizador. Por padrão, o API Gateway define essapropriedade como 300. O valor máximo é 3600, ou uma hora.

Type: inteiro

Obrigatório: Não

Padrão: 300

49

Page 55: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

ValidationExpression

Especifique uma expressão de validação para validar a Identidade de entrada.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

LambdaTokenIdentity

YAML

Identity: Header: Auth ValidationExpression: Bearer.* ReauthorizeEvery: 30

ResourcePolicyStatementConfigura a política de recursos de todos os métodos e caminhos de uma API.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

AwsAccountBlacklist: List AwsAccountWhitelist: List CustomStatements: List IpRangeBlacklist: List IpRangeWhitelist: List SourceVpcBlacklist: List SourceVpcWhitelist: List

Properties

AwsAccountBlacklist

As contas AWS bloqueiam.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.AwsAccountWhitelist

As contas AWS permitem.

50

Page 56: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.CustomStatements

Uma lista de declarações de política de recursos personalizados a aplicar a esta API.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.IpRangeBlacklist

Os endereços IP ou intervalos de endereços para bloquear.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.IpRangeWhitelist

Os endereços IP ou intervalos de endereços para permitir.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.SourceVpcBlacklist

Os parâmetros de avaliação VPC ou VPC de origem para bloquear.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.SourceVpcWhitelist

Os parâmetros de avaliação VPC ou VPC de origem para permitir.

51

Page 57: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.

Exemplos

SourceVpcBlacklist

O exemplo seguinte bloqueia dois endereços IP e um VPC fonte e permite uma conta AWS.

YAML

Auth: ResourcePolicy: CustomStatements: [{ "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/Prod/GET/pets", "Condition": { "IpAddress": { "aws:SourceIp": "1.2.3.4" } } }] IpRangeBlacklist: - "10.20.30.40" - "1.2.3.4" SourceVpcBlacklist: - "vpce-1a2b3c4d" AwsAccountWhitelist: - "111122223333"

ApiDefinitionUm documento openapi que define a API.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Bucket: String Key: String Version: String

Properties

Bucket

O nome do Amazon S3 balde onde o ficheiro openapi é armazenado.

52

Page 58: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Bucketpropriedade da AWS::ApiGateway::RestApi S3Location tipo de dados.

Key

A tecla Amazon S3 do ficheiro openapi.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Keypropriedade da AWS::ApiGateway::RestApi S3Location tipo de dados.

Version

Para objectos versionados, a versão do ficheiro openapi.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oVersion propriedade da AWS::ApiGateway::RestApi S3Location tipo de dados.

Exemplos

Exemplo de definição Uri

Exemplo de definição de API

YAML

DefinitionUri: Bucket: mybucket-name Key: mykey-name Version: 121212

CorsConfigurationGerir partilha de recursos de origem cruzada (CORS) para as suas API de Gateway API. Especifiqueo domínio para permitir uma cadeia ou especifique um dicionário com configuração de Cors adicional.OBSERVAÇÃO: O Cors requer que SAM modifique a sua definição openapi, pelo que só funciona com aopenapi inline definida no DefinitionBody propriedade.

Para mais informações sobre CORS, consulte Ativar CORS para um API Gateway REST API no Guia daFerramenta de Desenvolvimento do Amazon API Gateway.

Observação Se a configuração de corsconfiguração estiver definida em openapi e no nível de propriedade,AWS SAM as amostras, com as propriedades a ter precedência.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

53

Page 59: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

YAML

AllowCredentials: Boolean AllowHeaders: String AllowMethods: String AllowOrigin: String MaxAge: String

Properties

AllowCredentials

Booleano a indicar se o pedido tem permissão para conter credenciais.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

AllowHeaders

Cadeia de cabeçalhos para permitir.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

AllowMethods

String contendo os métodos HTTP para permitir.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

AllowOrigin

Cadeia de origem para permitir.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

MaxAge

Cadeia que contém o número de segundos para o pedido de Pré-voo CORS da cache.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

54

Page 60: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Exemplos

CorsConfiguration

Exemplo de configuração do cors. Esta é apenas uma parte de um AWS SAM modelo de modelomostrando um AWS::Sem servidor::Definição API com Cors configurado.

YAML

Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: Prod Cors: AllowMethods: "'POST, GET'" AllowHeaders: "'X-Forwarded-For'" AllowOrigin: "'www.example.com'" MaxAge: "'600'" AllowCredentials: True

DomainConfigurationConfigura um domínio personalizado para uma API.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

BasePath: List CertificateArn: String DomainName: String EndpointConfiguration: String Route53: Route53Configuration (p. 57)

Properties

BasePath

Lista de caminhos de base a configurar com o API Gateway Nome do domínio.

Type: Lista

Obrigatório: Não

Padrão:

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à BasePathpropriedade de um AWS::ApiGateway::BasePathMapping recurso. SAM irá criar váriosAWS::ApiGateway::BasePathMapping recursos, um por BasePath especificados nestapropriedade.

CertificateArn

A referência a um certificado gerido pela AWS para utilização pelo ponto final para este nome dedomínio. O AWS Certificate Manager é a única origem compatível.

55

Page 61: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à CertificateArnpropriedade de um AWS::ApiGateway::DomainName recurso. Se EndpointConfiguration estádefinido para REGIONAL (o valor predefinido), CertificateArn mapas para certificaçãoregionalem AWS::ApiGateway::DomainName. Se o EndpointConfiguration está definido para EDGE,CertificateArn mapas para certificaçãoarn em AWS::ApiGateway::DomainName.

Notas adicionais: Para um EDGE o certificado deve ser criado no us-east-1 região.DomainName

O nome de domínio personalizado para o seu API Gateway API. Letras maiúsculas não sãocompatíveis.

AWS SAM gera um AWS::apigateway::domainname recursos quando esta propriedade estádefinida. Para obter informações sobre este cenário, consulte Propriedade domainname estáespecificada (p. 153). Para informações gerais sobre a geração AWS CloudFormation recursos, verGerado AWS CloudFormation Recursos (p. 150).

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDomainName propriedade de um AWS::ApiGateway::DomainName recurso.

EndpointConfiguration

Propriedade para definir o tipo de API Gateway parâmetro de avaliação para ser mapeado para odomínio personalizado. O valor desta propriedade controla como CertificateArn a propriedade émapeada em AWS CloudFormation. Ver CertificateArn acima.

Os valores válidos são REGIONAL ou EDGE.

Type: String.

Obrigatório: Não

Padrão: REGIONAL

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Route53

Propriedade que adiciona a configuração Via53 com base nos valores definidos.

Type: Caminho53Configuração (p. 57)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

DomainName

exemplo domainname

56

Page 62: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

YAML

Domain: DomainName: www.example.com CertificateArn: arn-example EndpointConfiguration: EDGE Route53: HostedZoneId: Z1PA6795UKMFR9 BasePath: - /foo - /bar

Route53ConfigurationConfigura os conjuntos de registos Route53 para uma API.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

DistributionDomainName: String EvaluateTargetHealth: Boolean HostedZoneId: String HostedZoneName: String IpV6: Boolean

Properties

DistributionDomainName

Configura uma distribuição personalizada do nome de domínio personalizado da API.

Type: String.

Obrigatório: Não

Padrão: Utilize o API Gateway distribuição.

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDNSName propriedade de um AWS::Route53::RecordSetGroup AliasTarget recurso.

Notas adicionais: O nome de domínio de um CloudFront distribuição.EvaluateTargetHealth

Quando o avaliador é verdadeiro, um registo de alias herda a saúde do recurso AWS referenciado,como um Elastic Load Balancing balanceador de carga ou outro registo na zona alojada.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEvaluateTargetHealth propriedade de um AWS::Route53::RecordSetGroup AliasTargetrecurso.

Notas adicionais: Não é possível definir o avaliador para verdadeiro quando o alvo alternativo é umCloudFront distribuição.

57

Page 63: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::aplicação

HostedZoneId

O ID da zona hospedada na qual você deseja criar registros.

Especifique HostedZoneName ou HostedZoneId, mas não ambos. Se houver várias zonashospedadas com o mesmo nome de domínio, especifique a zona hospedada usando HostedZoneId.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oHostedZoneId propriedade de um AWS::Route53::RecordSetGroup RecordSet recurso.

HostedZoneName

O nome da zona hospedada na qual você deseja criar registros.

Especifique HostedZoneName ou HostedZoneId, mas não ambos. Se houver várias zonashospedadas com o mesmo nome de domínio, especifique a zona hospedada usando HostedZoneId.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oHostedZoneName propriedade de um AWS::Route53::RecordSetGroup RecordSet recurso.

IpV6

Quando esta propriedade está definida, AWS SAM cria uma AWS::Route53::RecordSet recursose conjuntos Tipo para AAAA para a hostedzone fornecida.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

Exemplo de configuração Route 53

Este exemplo mostra como configurar Route 53.

YAML

Domain: DomainName: www.example.com CertificateArn: arn-example EndpointConfiguration: EDGE Route53: HostedZoneId: Z1PA6795UKMFR9 EvaluateTargetHealth: true DistributionDomainName: xyz

AWS::sem servidor::aplicaçãoIncorpora uma aplicação sem servidor do Repositório de aplicações sem servidor AWS ou de umAmazon S3 balde como uma aplicação aninhada. As aplicações aglomeradas são implementadas como

58

Page 64: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::aplicação

aglomeradas AWS::turdformação::pilha recursos, que podem conter vários outros recursos, incluindooutros AWS::sem servidor::aplicação (p. 58) recursos.

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Type: AWS::Serverless::ApplicationProperties: Location: String | ApplicationLocationObject (p. 61) NotificationARNs: List Parameters: Map Tags: Map TimeoutInMinutes: Integer

PropertiesLocation

Modelo URL, caminho do ficheiro ou objeto de localização de uma aplicação agrupada.

Se for fornecido um URL de modelo, deve seguir o formato especificado na documentação detexto de formação cloudformation e conter uma formação de turvação ou modelo SAM. UmApplicationLocationObject (p. 61) pode ser utilizado para especificar uma aplicação que foipublicada no Repositório de aplicações sem servidor AWS.

Se for fornecido um caminho de ficheiro local, o modelo deve passar pelo fluxo de trabalho que inclui osam deploy ou sam package para que a aplicação seja transformada correctamente.

Type: Cadeia | applicationlocalizationobject (p. 61)

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à TemplateURL propriedadede um AWS::CloudFormation::Stack recurso. A versão de turvação não é necessáriaApplicationLocationObject (p. 61) para recuperar uma aplicação do AWS Serverless ApplicationRepository.

NotificationARNs

Uma lista de tópicos atuais de SNS da Amazon onde são enviados notificações sobre eventos depilha.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oNotificationARNs propriedade de um AWS::CloudFormation::Stack recurso.

Parameters

Valores dos parâmetros da aplicação.

Type: mapa

Obrigatório: Não

59

Page 65: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::aplicação

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oParameters propriedade de um AWS::CloudFormation::Stack recurso.

Tags

Um mapa (cadeia a cadeia) que especifica as etiquetas a adicionar a esta aplicação. As teclas e osvalores estão limitados a caracteres alfanuméricos. As teclas podem ser 1 a 127 caracteres Unicodede comprimento e não podem ser pré-fixados com aws:. Os valores podem ser 1 a 255 caracteresUnicode de comprimento.

Type: mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à Tags propriedadede um AWS::CloudFormation::Stack recurso. A propriedade das etiquetas em SAMconsiste em Key:Value pairs (Chave:Pares de valores); na formação de turvação consistenuma lista de objectos Tag (Etiqueta). Quando a pilha é criada, SAM adiciona automaticamenteuma lambda:createdBy:SAM etiqueta a esta aplicação. Além disso, se esta aplicaçãofor do AWS Serverless Application Repository, então SAM também irá automaticamenteas duas etiquetas adicionais serverlessrepo:applicationId:ApplicationId eserverlessrepo:semanticVersion:SemanticVersion.

TimeoutInMinutes

O tempo, em minutos, que o AWS CloudFormation aguarda para que a pilha aninhada atinja oestado CREATE_COMPLETE. O padrão é nenhum tempo limite. Quando a turvação AWS deteta quea pilha aninhada chegou ao CREATE_COMPLETE estado, marca o recurso da pilha em rede comoCREATE_COMPLETE na pilha principal e retoma a criação da pilha principal. Se o tempo limite expirarantes da pilha aninhada atingir CREATE_COMPLETE, o AWS CloudFormation marca a pilha aninhadacomo com falha e reverte a pilha aninhada e a pilha pai.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oTimeoutInMinutes propriedade de um AWS::CloudFormation::Stack recurso.

Valores de retornoRef

Quando a ID lógica deste recurso é fornecida à função intrínseca Ref, devolve o nome do recurso doAWS::CloudFormation::Stack recurso.

Para obter mais informações sobre como usar a função Ref, consulte Ref.

Fn::GetAtt

Fn::GetAtt retorna um valor para um atributo especificado deste tipo. Estes são os atributos disponíveise os valores de retorno de amostra.

Para obter mais informações sobre como usar Fn::GetAtt, consulte Fn::GetAtt.

Outputs.ApplicationOutputName

O valor da saída da pilha com o nome ApplicationOutputName.

60

Page 66: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::aplicação

ExemplosAplicação SARAplicação que utiliza um modelo do Repositório de aplicações sem servidor

YAML

Type: AWS::Serverless::ApplicationProperties: Location: ApplicationId: 'arn:aws:serverlessrepo:us-east-1:012345678901:applications/my-application' SemanticVersion: 1.0.0 Parameters: StringParameter: parameter-value IntegerParameter: 2

Aplicação normalAplicação de um URL S3

YAML

Type: AWS::Serverless::ApplicationProperties: Location: https://s3.amazonaws.com/demo-bucket/template.yaml

ApplicationLocationObjectUma aplicação que foi publicada no Repositório de aplicações sem servidor AWS.

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

ApplicationId: String SemanticVersion: String

Properties

ApplicationId

O nome de recurso da Amazon (ARN) do aplicativo.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

SemanticVersion

A versão semântica do aplicativo.

61

Page 67: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

a minha aplicação

Exemplo de objeto de localização de aplicação

YAML

Location: ApplicationId: 'arn:aws:serverlessrepo:us-east-1:012345678901:applications/my-application' SemanticVersion: 1.0.0

AWS::Serverless::FunctionCria uma função Lambda, função de execução IAM e mapeamentos de fonte de evento que accionam afunção.

O AWS::Serverless::Function (p. 62) recursos também suporta o Metadata atributo de recursos,para que possa instruir AWS SAM para criar tempos de funcionamento personalizados exigidos pela suaaplicação. Para mais informações sobre o desenvolvimento de tempos de funcionamento personalizados,consulte Construir tempos de runtimes personalizados (p. 172).

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Type: AWS::Serverless::FunctionProperties: AssumeRolePolicyDocument: JSON AutoPublishAlias: String AutoPublishCodeSha256: String CodeUri: String | FunctionCode (p. 112) DeadLetterQueue: Map | DeadLetterQueue (p. 70) DeploymentPreference: DeploymentPreference (p. 71) Description: String Environment: Environment EventInvokeConfig: EventInvokeConfiguration (p. 74) Events: EventSource (p. 79) FileSystemConfigs: List FunctionName: String Handler: String InlineCode: String KmsKeyArn: String Layers: List MemorySize: Integer PermissionsBoundary: String Policies: String | List | Map ProvisionedConcurrencyConfig: ProvisionedConcurrencyConfig

62

Page 68: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

ReservedConcurrentExecutions: Integer Role: String Runtime: String Tags: Map Timeout: Integer Tracing: String VersionDescription: String VpcConfig: VpcConfig

PropertiesAssumeRolePolicyDocument

Adiciona um documento assumersporpolicypara a predefinição criada Role para esta função. Se estapropriedade não for especificada, AWS SAM adiciona uma função assumida para esta função.

Type: JSON

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante àAssumeRolePolicyDocument propriedade de um AWS::IAM::Role recurso. AWS SAM adicionaesta propriedade à função IAM gerada para esta função. Se for fornecida uma função CER para estafunção, esta propriedade não faz nada.

AutoPublishAlias

Nome do Lambda pseudónimo. Para mais informações sobre alias Lambda, consulte Emissõesde função LAMBDA AWS. Para exemplos que utilizam esta propriedade, consulte Implementaraplicações sem servidor gradualmente (p. 188).

AWS SAM gera AWS::Lambda::Versão e AWS::Lambda::Alias recursos quando esta propriedade estádefinida. Para obter informações sobre este cenário, consulte Propriedade de Pseudónimo Automáticoestá especificada (p. 154). Para informações gerais sobre a geração AWS CloudFormation recursos,ver Gerado AWS CloudFormation Recursos (p. 150).

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

AutoPublishCodeSha256

O valor de cadeia que é utilizado (juntamente com o valor no codeuri) para determinar se uma novaversão Lambda deve ser publicada.

Esta propriedade aborda um problema que ocorre quando um AWS SAM possui as seguintescaracterísticas: DeploymentPreference o objecto está configurado para implementações graduais(conforme descrito em Implementar aplicações sem servidor gradualmente), o AutoPublishAlias apropriedade está definida e não muda entre implementações e CodeUri a propriedade está definida enão muda entre implementações.

Este cenário pode ocorrer quando o pacote de expansão é armazenado num Amazon S3 a localizaçãoé substituída por um novo pacote de implementação que contém atualizações Lambda código defunção, mas o CodeUri a propriedade permanece inalterada (em oposição ao novo pacote deimplementação a ser carregado para um novo Amazon S3 e o CodeUri ser alterado para a novalocalização).

Neste cenário, tem de fornecer um valor único para AutoPublishCodeSha256 para acionar aimplementação gradual com sucesso.

63

Page 69: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

CodeUri

O Amazon S3 URI, caminho de ficheiro local, ou FunctionCode (p. 112) objeto do código de função.

Se um Amazon S3 URI ou FunctionCode (p. 112) o objecto é fornecido, o Amazon S3 o objectoreferenciado tem de ser válido Pacote de expansão Lambda.

Se for fornecido um caminho de ficheiro local, o modelo deve passar pelo fluxo de trabalho que inclui osam deploy ou sam package para que o código seja transformado correctamente.

Observação Ambos CodeUri ou InlineCode é obrigatório.

Type: Cadeia | código de função (p. 112)

Obrigatório: Condicional

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à Code propriedade de umAWS::Lambda::Function recurso. A nestada Amazon S3 as propriedades são nomeadas de formadiferente.

DeadLetterQueue

Configura o tópico SNS ou fila SQS onde a Lambda envia eventos que não pode processar. Paraobter mais informações sobre a funcionalidade de fila de letras mortas, consulte Filas de carta demortos da função AWS Lambda.

Type: Mapa | fila em cashtree (p. 70)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à DeadLetterConfigpropriedade de um AWS::Lambda::Function recurso. Em AWS CloudFormation o tipo deriva doalvo, enquanto em AWS SAM tem de passar o tipo juntamente com o targetarn.

DeploymentPreference

As definições para permitir o Lambda implementações.

Se um DeploymentPreference objeto especificado, AWS SAM cria umAWS::codearea::Aplicação designado ServerlessDeploymentApplication (um por pilha), umAWS::codedeploy::implemenymentgroup designado <function-logical-id>DeploymentGroup,e um AWS::IAM::Função designado CodeDeployServiceRole.

Type: correçãode implementação (p. 71)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o Implementar aplicações sem servidor gradualmente (p. 188)documentação para mais informações sobre esta propriedade.

Description

Uma descrição da função.

64

Page 70: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDescription propriedade de um AWS::Lambda::Function recurso.

Environment

A configuração para o ambiente runtime.

Type: Environment

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEnvironment propriedade de um AWS::Lambda::Function recurso.

EventInvokeConfig

O objeto que descreve o evento invoca a configuração num Lambda função.

Type: configuraçãodeleidacotação (p. 74)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Events

Especifica os eventos que accionam esta função. Os eventos consistem num tipo e um conjunto depropriedades que dependem do tipo.

Type: fonte de depósito (p. 79)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

FileSystemConfigs

Lista de file config que especificam as definições de ligação para um Amazon EFS sistema deficheiros.

Se o seu modelo contiver um AWS::EFS::mounttarget recursos, também tem de especificar umDependsOn atributo de recursos para garantir que o alvo de montagem é criado ou atualizado antesda função.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oFileSystemConfigs propriedade de um AWS::Lambda::Function recurso.

FunctionName

Um nome para a função. Se não especificar um nome, é gerado um nome exclusivo para si.

Type: String.

Obrigatório: Não

65

Page 71: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oFunctionName propriedade de um AWS::Lambda::Function recurso.

Handler

A função no seu código que é chamada para iniciar a execução.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oHandler propriedade de um AWS::Lambda::Function recurso.

InlineCode

O Lambda código de função que está escrito directamente no modelo.

Observação Ambos CodeUri ou InlineCode é obrigatório.

Type: String.

Obrigatório: Condicional

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oZipFile propriedade da AWS::Lambda::Function Code tipo de dados.

KmsKeyArn

O Nome do Recurso Amazon (ARN) de uma tecla de Serviço de Gestão Principal AWS (AWS KMS)que a Lambda utiliza para encriptar e desencriptar as variáveis ambientais da sua função.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oKmsKeyArn propriedade de um AWS::Lambda::Function recurso.

Layers

A lista de arns de layerversion que devem ser utilizadas por esta função. A ordem especificada aqui éa ordem de importação ao executar a função Lambda.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Layerspropriedade de um AWS::Lambda::Function recurso.

MemorySize

O tamanho da memória atribuída por emissão da função em MB.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMemorySize propriedade de um AWS::Lambda::Function recurso.

PermissionsBoundary

O ARN de um limite de permissões a utilizar para a função de execução desta função. Estapropriedade só funciona se a função for gerada para si.

66

Page 72: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oPermissionsBoundary propriedade de um AWS::IAM::Role recurso.

Policies

Uma ou mais políticas que esta função necessita. Serão acrescentados à função predefinida para estafunção.

Esta propriedade aceita uma única cadeia ou uma lista de cadeias e pode ser o nome das políticas deIAM geridas pela AWS ou AWS SAM modelos de política ou documento(s) de política de IAM em linhaformatados em YLMA.

Para obter mais informações sobre as políticas de IAM geridas pela AWS, consulte Políticas geridaspela AWS. Para mais informações sobre AWS SAM modelos de políticas, ver Modelos de política doAWS SAM (p. 221). Para mais informações sobre políticas de linha, consulte Políticas inline.

OBSERVAÇÃO: Se o Role propriedade está definida, esta propriedade é ignorada.

Type: Cadeia | Lista | Mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à Policies propriedadede um AWS::IAM::Role recurso. AWS SAM suporta nomes de políticas geridas pela AWS e AWSSAM modelos de política, para além dos documentos da política JSON. AWS CloudFormation apenasaceita documentos da política JSON.

ProvisionedConcurrencyConfig

A configuração de conmoeda fornecida do alias de uma função.

Observação ProvisionedConcurrencyConfig apenas pode ser especificado se oAutoPublishAlias é definido. Caso contrário, os resultados de erro.

Type: execuçãodedistribuição

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oProvisionedConcurrencyConfig propriedade de um AWS::Lambda::Alias recurso.

ReservedConcurrentExecutions

O número máximo de execuções simultâneas que pretende reservar para a função.

Para mais informações sobre esta propriedade, consulte Escala de função Lambda AWS no Guia daferramenta de desenvolvimento AWS Lambda.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oReservedConcurrentExecutions propriedade de um AWS::Lambda::Function recurso.

Role

O ARN de uma função IAM a utilizar como função de execução desta função.

Type: String.

67

Page 73: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à Role propriedade de umAWS::Lambda::Function recurso. Isto é necessário em AWS CloudFormation mas não em AWSSAM. Se uma função não for especificada, é criada uma para si com uma ID lógica de <function-logical-id>Role.

Runtime

O identificador do tempo de execução da função.

Observação Se especificar o provided identificador para esta propriedade, pode utilizar o Metadataatributo de recursos para instruir AWS SAM para construir o tempo de execução personalizado exigidopor esta função. Para mais informações sobre o desenvolvimento de tempos de funcionamentopersonalizados, consulte Construir tempos de runtimes personalizados (p. 172).

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oRuntime propriedade de um AWS::Lambda::Function recurso.

Tags

Um mapa (cadeia a cadeia) que especifica as tags adicionadas ao Lambda função e a função deexecução MRS correspondente. As teclas e os valores estão limitados a caracteres alfanuméricos. Asteclas podem ser 1 a 127 caracteres Unicode de comprimento e não podem ser pré-fixados com aws:.Os valores podem ser 1 a 255 caracteres Unicode de comprimento.

Type: mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à Tags propriedade de umAWS::Lambda::Function recurso. A propriedade das Etiquetas em AWS SAM é composto porKey:Value pairs. Em AWS CloudFormation consiste numa lista de objetos Tag. Quando a pilha écriada, AWS SAM adiciona automaticamente um lambda:createdBy:SAM marcar a este Lambdafunção e a função de execução MRS correspondente.

Timeout

O tempo máximo que a função pode funcionar antes de ser morado, em segundos.

Type: inteiro

Obrigatório: Não

Padrão: 3.

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oTimeout propriedade de um AWS::Lambda::Function recurso.

Tracing

A cadeia que especifica o modo de procura de raios X da função. Para mais informações sobre raiosX, consulte Utilizar o raio X da AWS no Guia da ferramenta de desenvolvimento AWS Lambda.

Valores compatíveis Active e PassThrough.

Type: String.

Obrigatório: Não

68

Page 74: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à TracingConfigpropriedade de um AWS::Lambda::Function recurso. Se Tracing está definido para Active,então AWS SAM adiciona o arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess política dafunção Lambda.

VersionDescription

Especifica o campo Descrição que é adicionado no novo Lambda recurso de versão.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDescription propriedade de um AWS::Lambda::Version recurso.

VpcConfig

A configuração que permite esta função aceder a recursos privados no seu VPC.

Type: VpcConfig

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oVpcConfig propriedade de um AWS::Lambda::Function recurso.

Valores de retornoRefQuando a ID lógica deste recurso é fornecida à função intrínseca Ref, devolve o nome do recurso dafunção Lambda subjacente.

Para obter mais informações sobre como usar a função Ref, consulte Ref.

Fn::GetAttFn::GetAtt retorna um valor para um atributo especificado deste tipo. Estes são os atributos disponíveise os valores de retorno de amostra.

Para obter mais informações sobre como usar Fn::GetAtt, consulte Fn::GetAtt.

Arn

O Nome do Recurso Amazon (ARN) da função Lambda subjacente.

ExemplosFunção simplesO seguinte é um exemplo de caso base de um AWS::Sem servidor::Recurso de função.

YAML

Type: AWS::Serverless::FunctionProperties: Handler: index.handler Runtime: python3.6

69

Page 75: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

CodeUri: s3://bucket/key

Exemplo de propriedades da função

Segue-se um exemplo de um AWS::Sem servidor::Função que utiliza código inlinecode, Traçado, Políticas,Layers, SLA e uma fonte de evento Api.

YAML

Type: AWS::Serverless::FunctionDependsOn: MyMountTarget # This is needed if an AWS::EFS::MountTarget resource is declared for EFSProperties: Handler: index.handler Runtime: python3.6 InlineCode: | def handler(event, context): print("Hello, world!") ReservedConcurrentExecutions: 30 Layers: - Ref: MyLayer Tracing: Active Timeout: 120 FileSystemConfigs: - Arn: !Ref MyEfsFileSystem LocalMountPath: /mnt/EFS Policies: - AWSLambdaExecute - Version: '2012-10-17' Statement: - Effect: Allow Action: - s3:GetObject - s3:GetObjectACL Resource: 'arn:aws:s3:::my-bucket/*' Events: ApiEvent: Type: Api Properties: Path: /path Method: get

DeadLetterQueueEspecifica uma fila SQS ou um tópico SNS que o AWS Lambda (Lambda) envia eventos para quando nãoos consegue processar. Para mais informações sobre a funcionalidade de fila de letras mortas, consulteFilas de carta de mortos da função AWS Lambda.

A SAM irá adicionar automaticamente a permissão adequada à função de execução da função Lambdapara dar acesso ao serviço Lambda ao recurso. Os sqs:sendmessage serão adicionados para as filas deSQS e para as listas:Publicar para tópicos SNS.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

TargetArn: String

70

Page 76: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: String

Properties

TargetArn

O nome de recurso da Amazon (ARN) de uma fila do Amazon SQS ou um tópico do Amazon SNS.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oTargetArn propriedade da AWS::Lambda::Function DeadLetterConfig tipo de dados.

Type

O tipo de fila de letras mortas.

Valores compatíveis SNS, SQS.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

DeadLetterQueue

Exemplo de Fila de Letras Mortas para um tópico SNS.

YAML

DeadLetterQueue: Type: SNS TargetArn: arn:aws:sns:us-east-2:123456789012:my-topic

DeploymentPreferenceEspecifica as configurações para ativar implementações de Lambda gradual. Para mais informaçõessobre a configuração gradual de implementações Lambda, consulte Implementar aplicações sem servidorgradualmente (p. 188).

Observação Tem de especificar um AutoPublishAlias no seu AWS::Serverless::Function (p. 62)para utilizar um DeploymentPreference caso contrário, um erro resultará em erro.

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Alarms: List Enabled: Boolean Hooks: Hooks (p. 73)

71

Page 77: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Role: String TriggerConfigurations: List Type: String

Properties

Alarms

Uma lista de alarmes turdwatch que pretende accionar por quaisquer erros levantados pelaimplementação.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Enabled

Se esta preferência de implementação está ativada.

Type: booliano

Obrigatório: Não

Padrão: Verdadeiro.

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Hooks

Validação das funções Lambda que são executadas antes e depois do movimento de trânsito.

Type: Ganchos (p. 73)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Role

Uma função IAM que o código de barras irá utilizar para a mudança de tráfego. Uma função IAM nãoserá criada se for fornecido.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

TriggerConfigurations

Uma lista de configurações de trigger que pretende associar ao grupo de implementação. Utilizadopara notificar um tópico SNS sobre eventos do ciclo de vida.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oTriggerConfigurations propriedade de um AWS::CodeDeploy::DeploymentGroup recurso.

72

Page 78: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type

Neste momento, existem duas categorias de tipos de implementação: Linear e Canárias. Para maisinformações sobre os tipos de implementação disponíveis, consulte Implementar aplicações semservidor gradualmente (p. 188).

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

DeploymentPreference

Exemplo de preferência de implementação

YAML

DeploymentPreference: Enabled: True Type: Canary10Percent10Minutes Alarms: - Ref: AliasErrorMetricGreaterThanZeroAlarm - Ref: LatestVersionErrorMetricGreaterThanZeroAlarm Hooks: PreTraffic: Ref: PreTrafficLambdaFunction PostTraffic: Ref: PostTrafficLambdaFunction

HooksValidação das funções Lambda que são executadas antes e depois do movimento de trânsito.

Observação As funções Lambda referenciadas nesta propriedade configuram oCodeDeployLambdaAliasUpdate objeto do resultado AWS::Lambda::Alias recurso. Para maisinformações, consulte código de descodificação da polidode lambdedeimplementação no Guia do usuáriodo AWS CloudFormation.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

PostTraffic: String PreTraffic: String

Properties

PostTraffic

Função Lambda que é executada após a mudança de tráfego.

Type: String.

73

Page 79: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

PreTraffic

Função Lambda que é executada antes da mudança de tráfego.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

Hooks

Exemplo de funções de gancho

YAML

Hooks: PreTraffic: Ref: PreTrafficLambdaFunction PostTraffic: Ref: PostTrafficLambdaFunction

EventInvokeConfigurationOpções de configuração para assíncrono Transcrições Lambda Alias ou Versão.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

DestinationConfig: EventInvokeDestinationConfiguration (p. 75) MaximumEventAgeInSeconds: Integer MaximumRetryAttempts: Integer

Properties

DestinationConfig

Um objeto de configuração que especifica o destino de um evento depois que o Lambda processá-lo.

Type: eventinvokedestinationconfiguration (p. 75)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à DestinationConfigpropriedade de um AWS::Lambda::EventInvokeConfig recurso. SAM requer um parâmetro extra,"Tipo", que não existe na formação de turvação.

74

Page 80: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

MaximumEventAgeInSeconds

A idade máxima de uma solicitação que o Lambda envia a uma função para processamento.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMaximumEventAgeInSeconds propriedade de um AWS::Lambda::EventInvokeConfig recurso.

MaximumRetryAttempts

O número máximo de vezes para tentar novamente antes de a função devolver um erro.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMaximumRetryAttempts propriedade de um AWS::Lambda::EventInvokeConfig recurso.

Exemplos

MaximumEventAgeInSeconds

exemplo de máximamelhosde avanço

YAML

EventInvokeConfig: MaximumEventAgeInSeconds: 60 MaximumRetryAttempts: 2 DestinationConfig: OnSuccess: Type: SQS Destination: arn:aws:sqs:us-west-2:012345678901:my-queue OnFailure: Type: Lambda Destination: !GetAtt DestinationLambda.Arn

EventInvokeDestinationConfigurationUm objeto de configuração que especifica o destino de um evento depois que o Lambda processá-lo.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

OnFailure: OnFailure (p. 76) OnSuccess: OnSuccess (p. 78)

Properties

OnFailure

Um destino para eventos que tiveram falha no processamento.

75

Page 81: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: OnFailure (p. 76)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à OnFailure propriedade deum AWS::Lambda::EventInvokeConfig recurso. Requer Type, uma propriedade adicional deapenas SAM.

OnSuccess

Um destino para eventos que foram processados com êxito.

Type: OnSuccess (p. 78)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à OnSuccess propriedade deum AWS::Lambda::EventInvokeConfig recurso. Requer Type, uma propriedade adicional deapenas SAM.

Exemplos

OnSuccess

exemplo de sucesso

YAML

EventInvokeConfig: DestinationConfig: OnSuccess: Type: SQS Destination: arn:aws:sqs:us-west-2:012345678901:my-queue OnFailure: Type: Lambda Destination: !GetAtt DestinationLambda.Arn

OnFailure

Um destino para eventos que tiveram falha no processamento.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Destination: String Type: String

Properties

Destination

O nome de recurso da Amazon (ARN) do recurso de destino.

Type: String.

76

Page 82: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Obrigatório: Condicional

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à OnFailure propriedadede um AWS::Lambda::EventInvokeConfig recurso. A SAM irá adicionar quaisquer permissõesnecessárias à função IAM gerada automaticamente associada a esta função para aceder ao recursoreferenciado nesta propriedade.

Notas adicionais: Se o tipo for Lambda/eventbridge, o Destino é obrigatório.Type

Tipo de recurso referenciado no destino. Os tipos suportados são SQS, SNS, Lambda, eEventBridge.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Notas adicionais: Se o tipo for SQS/SNS e o Destination propriedade fica em branco, depoiso recurso SQS/SNS é gerado automaticamente pelo SAM. Para consultar o recurso, utilize<function-logical-id>.DestinationQueue para SQS ou <function-logical-id>.DestinationTopic para SNS. Se o tipo é Lambda/eventbridge, Destination é obrigatório.

Exemplos

eventinvoke exemplo de configuração com destinos SQS e Lambda

Neste exemplo, nenhum destino é dado para a configuração de sucesso SQS, por isso SAM criaimplicitamente uma fila SQS e adiciona quaisquer permissões necessárias. Também para este exemplo,um Destino para um recurso Lambda declarado no ficheiro de modelo é especificado na configuração defalha, pelo que SAM adiciona as permissões necessárias a esta função Lambda para chamar a funçãoLambda de destino.

YAML

EventInvokeConfig: DestinationConfig: OnSuccess: Type: SQS OnFailure: Type: Lambda Destination: !GetAtt DestinationLambda.Arn # Arn of a Lambda function declared in the template file.

eventinvoke Configuration Exemplo com destino SNS

Neste exemplo, é dado um destino para um tópico SNS declarado no ficheiro modelo para a configuraçãoonsuccess.

YAML

EventInvokeConfig: DestinationConfig: OnSuccess: Type: SNS Destination:

77

Page 83: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Ref: DestinationSNS # Arn of an SNS topic declared in the tempate file

OnSuccess

Um destino para eventos que foram processados com êxito.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Destination: String Type: String

Properties

Destination

O nome de recurso da Amazon (ARN) do recurso de destino.

Type: String.

Obrigatório: Condicional

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à OnSuccess propriedadede um AWS::Lambda::EventInvokeConfig recurso. A SAM irá adicionar quaisquer permissõesnecessárias à função IAM gerada automaticamente associada a esta função para aceder ao recursoreferenciado nesta propriedade.

Notas adicionais: Se o tipo for Lambda/eventbridge, o Destino é obrigatório.Type

Tipo de recurso referenciado no destino. Os tipos suportados são SQS, SNS, Lambda, eEventBridge.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Notas adicionais: Se o tipo for SQS/SNS e o Destination propriedade fica em branco, depoiso recurso SQS/SNS é gerado automaticamente pelo SAM. Para consultar o recurso, utilize<function-logical-id>.DestinationQueue para SQS ou <function-logical-id>.DestinationTopic para SNS. Se o tipo é Lambda/eventbridge, Destination é obrigatório.

Exemplos

eventinvoke exemplo de configuração com destinos SQS e Lambda

Neste exemplo, nenhum destino é dado para a configuração de sucesso SQS, por isso SAM criaimplicitamente uma fila SQS e adiciona quaisquer permissões necessárias. Também para este exemplo,um Destino para um recurso Lambda declarado no ficheiro de modelo é especificado na configuração defalha, pelo que SAM adiciona as permissões necessárias a esta função Lambda para chamar a funçãoLambda de destino.

78

Page 84: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

YAML

EventInvokeConfig: DestinationConfig: OnSuccess: Type: SQS OnFailure: Type: Lambda Destination: !GetAtt DestinationLambda.Arn # Arn of a Lambda function declared in the template file.

eventinvoke Configuration Exemplo com destino SNS

Neste exemplo, é dado um destino para um tópico SNS declarado no ficheiro modelo para a configuraçãoonsuccess.

YAML

EventInvokeConfig: DestinationConfig: OnSuccess: Type: SNS Destination: Ref: DestinationSNS # Arn of an SNS topic declared in the tempate file

EventSourceO objeto que descreve a fonte de eventos que acciona a função. Cada evento consiste num tipo e umconjunto de propriedades que dependem desse tipo. Para mais informações sobre as propriedades decada fonte de evento, consulte o tópico correspondente a esse tipo.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Properties: S3 (p. 105) | SNS (p. 108) | Kinesis (p. 101) | DynamoDB (p. 92) | SQS (p. 111) | Api (p. 81) | Schedule (p. 106) | CloudWatchEvent (p. 88) | EventBridgeRule (p. 95) | CloudWatchLogs (p. 90) | IoTRule (p. 100) | AlexaSkill (p. 80) | Cognito (p. 91) | HttpApi (p. 96) | MSK (p. 104) Type: String

Properties

Properties

Objeto que descreve as propriedades deste mapeamento de eventos. O conjunto de propriedadesdeve estar em conformidade com o Tipo definido.

Type: S3 (p. 105) | SNS (p. 108) | Kinesis (p. 101) | dinmodb (p. 92) | SQS (p. 111) |API (p. 81) | Calendário (p. 106) | evento cloudwatchevent (p. 88) | eventbridgerule (p. 95) |registos cloudwatchers (p. 90) | iotrule (p. 100) | desvanecimento (p. 80) | Cognito (p. 91) |httpapi (p. 96) | MSK (p. 104)

Obrigatório: Sim

79

Page 85: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Type

O tipo de evento.

Valores compatíveis S3, SNS, Kinesis, DynamoDB, SQS, Api, Schedule, CloudWatchEvent,CloudWatchLogs, IoTRule, AlexaSkill, Cognito, EventBridgeRule, HttpApi, MSK.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

Evento API

Exemplo de utilização de um evento API

YAML

ApiEvent: Type: Api Properties: Method: get Path: /group/{user} RestApiId: Ref: MyApi

AlexaSkillO objeto que descreve um AlexaSkill tipo de fonte de evento.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

SkillId: String

Properties

SkillId

A ID de Aptidão Alexa para a sua Capacidade Alexa. Para mais informações sobre a ID dacapacidade, consulte Configurar o gatilho para uma função Lambda na documentação do Kit decompetências Alexa.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

80

Page 86: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Exemplos

AlexaSkillTrigger

Exemplo de evento de capacidade Alexa

YAML

AlexaSkillEvent: Type: AlexaSkill

Api

O objeto que descreve um Api tipo de fonte de evento. Se um AWS::Serverless::Api (p. 29) o recurso édefinido, o caminho e os valores do método devem corresponder a uma operação na definição openapi daAPI.

Se não AWS::Serverless::Api (p. 29) é definida, a entrada e saída da função são uma representação dopedido HTTP e da resposta HTTP.

Por exemplo, utilizando a API javascript, o código de estado e o corpo da resposta podem ser controladosdevolvendo um objeto com as teclas código e corpo.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Auth: ApiFunctionAuth (p. 83) Method: String Path: String RequestModel: RequestModel (p. 87) RequestParameters: String | RequestParameter (p. 87) RestApiId: String

Properties

Auth

Configuração de autorização para este API+Path+Method específico.

Útil para ultrapassar as API DefaultAuthorizer definir configuração de privilégios numcaminho individual quando não DefaultAuthorizer é especificado ou substitui a predefiniçãoApiKeyRequired definição.

Type: iddefunção (p. 83)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Method

Método HTTP para o qual esta função é invocada.

Type: String.

81

Page 87: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Path

Caminho uri para o qual esta função é invocada. Tem de começar com /.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

RequestModel

Solicite o modelo a utilizar para este API+Path+Method específico. Isto deve referir o nome de ummodelo especificado no Models secção de um AWS::Serverless::Api (p. 29) recurso.

Type: requisitomodelo (p. 87)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

RequestParameters

Solicite a configuração dos parâmetros para este API+Path+Method específico. Todos os nomes dosparâmetros devem começar com method.request e deve limitar-se a method.request.header,method.request.querystring, ou method.request.path.

Se um parâmetro for uma cadeia e não um Objeto de parâmetro de pedido de função, entãoRequired e Caching por predefinição para Falso.

Type: Cadeia | requisitoparâmetro (p. 87)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

RestApiId

Identificador de um recurso de restapi, que deve conter uma operação com o caminho e métodofornecidos. Normalmente, está definido para referenciar um AWS::Serverless::Api (p. 29) recursosdefinidos neste modelo.

Se não definido, uma predefinição AWS::Serverless::Api (p. 29) recurso é criado utilizando umdocumento openapi gerado contendo uma união de todos os caminhos e métodos definidos peloseventos da API definidos neste modelo que não especificam uma RestApiId.

Isto não pode referenciar um AWS::Serverless::Api (p. 29) recursos definidos noutro modelo.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

82

Page 88: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Exemplos

ApiEvent

Um exemplo do Evento da API

YAML

Events: ApiEvent: Type: Api Properties: Path: /path Method: get RequestParameters: - method.request.header.Authorization

ApiFunctionAuth

Configura a autorização ao nível do evento, para uma API, caminho e método específicos.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

ApiKeyRequired: Boolean AuthorizationScopes: List Authorizer: String InvokeRole: String ResourcePolicy: ResourcePolicyStatement (p. 84)

Properties

ApiKeyRequired

Requer uma chave API para esta API, caminho e método.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

AuthorizationScopes

Os âmbitos de autorização aplicam-se a esta API, caminho e método.

Os âmbitos que especificar irão substituir quaisquer âmbitos aplicados pelo DefaultAuthorizerpropriedade se o tiver especificado.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

83

Page 89: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Authorizer

O Authorizer para uma função específica

Se especificou um Representante Global na API e pretender tornar público uma Função específica,substituir por definição Authorizer para NONE.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

InvokeRole

Especifica o InvokeRole para utilizar para AWS_IAM autorização.

Type: String.

Obrigatório: Não

Padrão: CALLER_CREDENTIALS

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Notas adicionais: CALLER_CREDENTIALS mapas para arn:aws:iam::*:user/*, que utiliza ascredenciais de chamador para invocar o parâmetro de avaliação.

ResourcePolicy

Configurar a Política de Recursos para este caminho numa API.

Type: declaração de resourcepolicy (p. 84)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

Função-Autorização

O exemplo seguinte especifica a autorização ao nível da função.

YAML

Auth: ApiKeyRequired: true Authorizer: NONE

ResourcePolicyStatement

Configura a política de recursos de todos os métodos e caminhos de uma API.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

84

Page 90: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

YAML

AwsAccountBlacklist: List AwsAccountWhitelist: List CustomStatements: List IpRangeBlacklist: List IpRangeWhitelist: List SourceVpcBlacklist: List SourceVpcWhitelist: List

Properties

AwsAccountBlacklist

As contas AWS bloqueiam.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.AwsAccountWhitelist

As contas AWS permitem.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.CustomStatements

Uma lista de declarações de política de recursos personalizados a aplicar a esta API.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.IpRangeBlacklist

Os endereços IP ou intervalos de endereços para bloquear.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.

85

Page 91: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

IpRangeWhitelist

Os endereços IP ou intervalos de endereços para permitir.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.SourceVpcBlacklist

Os parâmetros de avaliação VPC ou VPC de origem para bloquear.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.SourceVpcWhitelist

Os parâmetros de avaliação VPC ou VPC de origem para permitir.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.

Exemplos

SourceVpcBlacklist

O exemplo seguinte bloqueia dois endereços IP e um VPC fonte e permite uma conta AWS.

YAML

Auth: ResourcePolicy: CustomStatements: [{ "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/Prod/GET/pets", "Condition": { "IpAddress": { "aws:SourceIp": "1.2.3.4" } } }] IpRangeBlacklist: - "10.20.30.40" - "1.2.3.4"

86

Page 92: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

SourceVpcBlacklist: - "vpce-1a2b3c4d" AwsAccountWhitelist: - "111122223333"

RequestModel

Configurar modelo de pedido para um API+Caminho+Método específico.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Model: String Required: Boolean

Properties

Model

Nome de um modelo definido na propriedade Modelos do AWS::Serverless::Api (p. 29).

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Required

adiciona um required propriedade na secção de parâmetros da definição openapi para o parâmetrode avaliação da API

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

Modelo de solicitação

Exemplo de modelo de pedido

YAML

RequestModel: Model: User Required: true

RequestParameter

Configurar parâmetro de pedido para um API+Caminho+Método específico.

87

Page 93: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Ambos Required ou Caching a propriedade tem de ser especificada para o parâmetro de pedido

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Caching: Boolean Required: Boolean

Properties

Caching

Adiciona cacheKeyParameters secção da definição API Gateway openapi

Type: booliano

Obrigatório: Condicional

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Required

Este campo especifica se é necessário um parâmetro

Type: booliano

Obrigatório: Condicional

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

Parâmetro de solicitação

Exemplo de definição de parâmetros de pedido

YAML

RequestParameters: - method.request.header.Authorization: Required: true Caching: true

CloudWatchEvent

O objeto que descreve um CloudWatchEvent tipo de fonte de evento.

Modelo de aplicativo sem servidor da AWS (AWS SAM) gera um AWS::Eventos::Regra recursos quandoeste tipo de evento está definido.

Nota importante: EventBridgeRule (p. 95) é o tipo de fonte de evento preferencial a utilizar, em vezde CloudWatchEvent. EventBridgeRule e CloudWatchEvent utilizar o mesmo serviço subjacente,

88

Page 94: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

API e AWS CloudFormation recursos. No entanto, AWS SAM adicionará suporte apenas para novasfuncionalidades a EventBridgeRule.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

EventBusName: String Input: String InputPath: String Pattern: EventPattern

Properties

EventBusName

O barramento de eventos que deve ser associado a essa regra. Se omitir esta propriedade, AWS SAMutiliza o autocarro de eventos predefinido.

Type: String.

Obrigatório: Não

Padrão: Barramento de eventos padrão

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventBusName propriedade de um AWS::Events::Rule recurso.

Input

Texto JSON válido passado para o destino. Se você usar essa propriedade, nada do próprio texto doevento é passado para o destino.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Inputpropriedade de um AWS::Events::Rule Target recurso.

InputPath

Quando não quiser passar todo o evento correspondente ao alvo, utilize o InputPath para descreverque parte do evento deve ser aprovado.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oInputPath propriedade de um AWS::Events::Rule Target recurso.

Pattern

Descreve quais eventos são roteados para o destino especificado. Para mais informações, consulteEventos e Padrões de Eventos em eventbridge no Amazon EventBridge Guia do utilizador.

Type: padrão de eventos

89

Page 95: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventPattern propriedade de um AWS::Events::Rule recurso.

Exemplos

CloudWatchEvent

Segue-se um exemplo de um CloudWatchEvent tipo de fonte de evento.

YAML

CWEvent: Type: CloudWatchEvent Properties: Input: '{"Key": "Value"}' Pattern: detail: state: - terminated

CloudWatchLogs

O objeto que descreve um CloudWatchLogs tipo de fonte de evento.

Este evento gera uma AWS::Registos::filtro de subscrição recursos e especifica um filtro de subscrição eassocia-o ao grupo de registo especificado.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

FilterPattern: String LogGroupName: String

Properties

FilterPattern

As expressões de filtragem que restringem o que é entregue para o recurso da AWS de destino. Paraobter mais informações sobre o filtro do padrão de filtro Sintaxe de filtros e padrões.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oFilterPattern propriedade de um AWS::Logs::SubscriptionFilter recurso.

LogGroupName

O grupo de logs ao qual associar o filtro de assinatura. Todos os eventos de log carregados nessegrupo de logs são filtrados e entregues para o recurso da AWS especificado caso o padrão do filtrocorresponda aos eventos de log.

90

Page 96: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oLogGroupName propriedade de um AWS::Logs::SubscriptionFilter recurso.

Exemplos

Filtro de subscrição Cloudwatchlogs

Exemplo de filtro de subscrição Cloudwatchlogs

YAML

CWLog: Type: CloudWatchLogs Properties: LogGroupName: Ref: CloudWatchLambdaLogsGroup FilterPattern: My pattern

Cognito

O objeto que descreve um Cognito tipo de fonte de evento.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Trigger: List UserPool: String

Properties

Trigger

As informações de configuração de trigger do Lambda para o novo grupo de usuários.

Type: Lista

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oLambdaConfig propriedade de um AWS::Cognito::UserPool recurso.

UserPool

Referência ao conjunto de utilizadores definido no mesmo modelo

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

91

Page 97: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Exemplos

Evento Cognito

Exemplo de evento Cognito

YAML

CognitoUserPoolPreSignup: Type: Cognito Properties: UserPool: Ref: MyCognitoUserPool Trigger: PreSignUp

DynamoDBO objeto que descreve um DynamoDB tipo de fonte de evento.

AWS SAM gera um AWS::Lambda::eventsourcemapping recursos quando este tipo de evento estádefinido.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

BatchSize: Integer BisectBatchOnFunctionError: Boolean DestinationConfig: DestinationConfig Enabled: Boolean MaximumBatchingWindowInSeconds: Integer MaximumRecordAgeInSeconds: Integer MaximumRetryAttempts: Integer ParallelizationFactor: Integer StartingPosition: String Stream: String

Properties

BatchSize

O número máximo de itens a serem recuperados em um único lote.

Type: inteiro

Obrigatório: Não

Padrão: -100

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oBatchSize propriedade de um AWS::Lambda::EventSourceMapping recurso.

Mínimo: 1

Máximo: 1000BisectBatchOnFunctionError

Se a função devolver um erro, divida o lote em dois e tente novamente.

92

Page 98: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oBisectBatchOnFunctionError propriedade de um AWS::Lambda::EventSourceMappingrecurso.

DestinationConfig

Um Amazon SQS fila ou Amazon SNS destino do tópico para registos eliminados.

Type: DestinationConfig

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDestinationConfig propriedade de um AWS::Lambda::EventSourceMapping recurso.

Enabled

Desabilita o mapeamento de origens de eventos para pausar a sondagem e a invocação.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEnabled propriedade de um AWS::Lambda::EventSourceMapping recurso.

MaximumBatchingWindowInSeconds

O máximo de tempo para reunir registros antes de invocar a função, em segundos.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMaximumBatchingWindowInSeconds propriedade de um AWS::Lambda::EventSourceMappingrecurso.

MaximumRecordAgeInSeconds

A idade máxima de um registo que a Lambda envia para uma função para processamento.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMaximumRecordAgeInSeconds propriedade de um AWS::Lambda::EventSourceMappingrecurso.

MaximumRetryAttempts

O número máximo de vezes para tentar novamente quando a função retorna um erro.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMaximumRetryAttempts propriedade de um AWS::Lambda::EventSourceMapping recurso.

93

Page 99: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

ParallelizationFactor

O número de lotes a processar a partir de cada derivação em simultâneo.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oParallelizationFactor propriedade de um AWS::Lambda::EventSourceMapping recurso.

StartingPosition

A posição em um fluxo da qual você deseja iniciar a leitura.

Valores compatíveis TRIM_HORIZON, LATEST.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oStartingPosition propriedade de um AWS::Lambda::EventSourceMapping recurso.

Stream

ARN do fluxo dinmodb.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventSourceArn propriedade de um AWS::Lambda::EventSourceMapping recurso.

Exemplos

Evento dynamodb para Tabela de dinmodb existente

dinmodb Event para uma tabela de dinmodb que já existe numa conta AWS.

YAML

Events: DDBEvent: Type: DynamoDB Properties: Stream: arn:aws:dynamodb:us-east-1:123456789012:table/TestTable/stream/2016-08-11T21:21:33.291 StartingPosition: TRIM_HORIZON BatchSize: 10 Enabled: false

Evento dynamodb para Tabela de dinmodb declarada no Modelo

dinmodb Event para uma tabela dinmodb que é declarada no mesmo ficheiro de modelo.

YAML

Events: DDBEvent:

94

Page 100: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: DynamoDB Properties: Stream: !GetAtt MyDynamoDBTable.StreamArn # This must be the name of a DynamoDB table declared in the same template file StartingPosition: TRIM_HORIZON BatchSize: 10 Enabled: false

EventBridgeRule

O objeto que descreve um EventBridgeRule tipo de fonte de evento.

Modelo de aplicativo sem servidor da AWS (AWS SAM) gera um AWS::Eventos::Regra recursos quandoeste tipo de evento está definido.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

EventBusName: String Input: String InputPath: String Pattern: EventPattern

Properties

EventBusName

O barramento de eventos que deve ser associado a essa regra. Se omitir esta propriedade, AWS SAMutiliza o autocarro de eventos predefinido.

Type: String.

Obrigatório: Não

Padrão: Barramento de eventos padrão

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventBusName propriedade de um AWS::Events::Rule recurso.

Input

Texto JSON válido passado para o destino. Se você usar essa propriedade, nada do próprio texto doevento é passado para o destino.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Inputpropriedade de um AWS::Events::Rule Target recurso.

InputPath

Quando não quiser passar todo o evento correspondente ao alvo, utilize o InputPath para descreverque parte do evento deve ser aprovado.

95

Page 101: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oInputPath propriedade de um AWS::Events::Rule Target recurso.

Pattern

Descreve quais eventos são roteados para o destino especificado. Para mais informações, consulteEventos e Padrões de Eventos em eventbridge no Guia do Utilizador da Amazon eventbridge.

Type: padrão de eventos

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventPattern propriedade de um AWS::Events::Rule recurso.

Exemplos

EventBridgeRule

Segue-se um exemplo de um EventBridgeRule tipo de fonte de evento.

YAML

EBRule: Type: EventBridgeRule Properties: Input: '{"Key": "Value"}' Pattern: detail: state: - terminated

HttpApi

O objeto que descreve uma fonte de evento com tipo httpapi.

Se existir uma definição de openapi para o caminho e método especificados na API, SAM irá adicionar asecção de integração e segurança Lambda (se aplicável) para si.

Se não existir definição openapi para o caminho e método especificados na API, o SAM irá criar estadefinição para si.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

ApiId: String Auth: HttpApiFunctionAuth (p. 99) Method: String Path: String PayloadFormatVersion: String RouteSettings: RouteSettings

96

Page 102: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

TimeoutInMillis: Integer

Properties

ApiId

Identificador de AWS::sem servidor::httpapi (p. 113) recursos definidos neste modelo.

Se não definido, uma predefinição AWS::sem servidor::httpapi (p. 113) recurso é criadoServerlessHttpApi utilizar um documento openapi gerado contendo uma união de todos oscaminhos e métodos definidos pelos eventos da API definidos neste modelo que não especificam umApiId.

Isto não pode referenciar um AWS::sem servidor::httpapi (p. 113) recursos definidos noutro modelo.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Auth

Configuração de autorização para este API+Path+Method específico.

Útil para ultrapassar as API DefaultAuthorizer ou definir a configuração de privilégios numcaminho individual quando não DefaultAuthorizer é especificado.

Type: função de htthu (p. 99)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Method

Método HTTP para o qual esta função é invocada.

Se não Path e Method são especificadas, SAM irá criar um caminho API predefinido que encaminhaqualquer pedido que não seja mapeado para um parâmetro de avaliação diferente desta funçãoLambda. Apenas um destes caminhos predefinidos pode existir por API.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Path

Caminho uri para o qual esta função é invocada. Tem de começar com /.

Se não Path e Method são especificadas, SAM irá criar um caminho API predefinido que encaminhaqualquer pedido que não seja mapeado para um parâmetro de avaliação diferente desta funçãoLambda. Apenas um destes caminhos predefinidos pode existir por API.

Type: String.

Obrigatório: Não

97

Page 103: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

PayloadFormatVersion

Especifica o formato da carga enviada para uma integração.

OBSERVAÇÃO: A versão de carregamento paycarregversão requer que o SAM modifique a definiçãoda sua API, por isso só funciona com o openapi inline definido no DefinitionBody propriedade.

Type: String.

Obrigatório: Não

Padrão: 2.0

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

RouteSettings

As definições de itinerário por percurso para esta API HTTP. Para mais informações sobre definiçõesde itinerário, consulte AWS::apigatewayv2::Stage routesettings no API Gateway Guia da Ferramentade Desenvolvimento.

Observação Se forem especificadas definições de roupeiro tanto na fonte de recursos e de eventos dehttpapi, AWS SAM amplia-os com as propriedades de origem do evento que têm precedência.

Type: RouteSettings

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oRouteSettings propriedade de um AWS::ApiGatewayV2::Stage recurso.

TimeoutInMillis

Tempo limite personalizado entre 50 e 29.000 milissegundos.

OBSERVAÇÃO: o timeoutinmilis requer que o SAM modifique a sua definição openapi, pelo que sófunciona com o openapi inline definido no DefinitionBody propriedade.

Type: inteiro

Obrigatório: Não

Padrão: 5000

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

Evento de httpapi predefinido

httpii Event que utiliza o caminho predefinido. Todos os caminhos e métodos não mapeados nesta API irãoencaminhar para este parâmetro de avaliação.

YAML

Events:

98

Page 104: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

HttpApiEvent: Type: HttpApi

HttpApi

httpii Event que utiliza um caminho e método específicos.

YAML

Events: HttpApiEvent: Type: HttpApi Properties: Path: / Method: GET

Autorização httpapi

httpapi Evento que utiliza um Autorizador.

YAML

Events: HttpApiEvent: Type: HttpApi Properties: Path: /authenticated Method: GET Auth: Authorizer: OpenIdAuth AuthorizationScopes: - scope1 - scope2

HttpApiFunctionAuth

Configura a autorização no nível do evento.

Configurar autorização para uma API + Caminho + Método específico

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

AuthorizationScopes: List Authorizer: String

Properties

AuthorizationScopes

Os âmbitos de autorização aplicam-se a esta API, caminho e método.

Os âmbitos aqui indicados irão substituir quaisquer âmbitos aplicados pelo DefaultAuthorizer seexistir um.

99

Page 105: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Authorizer

O Authorizer para uma função específica

Se especificou um Representante Global na API e pretender tornar público uma Função específica,substituir por definição Authorizer para NONE.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

Função-Autorização

Autorização específica ao nível da função

YAML

Auth: Authorizer: OpenIdAuth AuthorizationScopes: - scope1 - scope2

IoTRule

O objeto que descreve um IoTRule tipo de fonte de evento.

Cria um AWS::iot::topicrule para declarar uma regra de iot AWS. Para mais informações, consulteDocumentação de formação AWS

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

AwsIotSqlVersion: String Sql: String

Properties

AwsIotSqlVersion

A versão do mecanismo de regras do SQL a ser usado ao avaliar a regra.

Type: String.

100

Page 106: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oAwsIotSqlVersion propriedade de um AWS::IoT::TopicRule TopicRulePayload recurso.

Sql

A instrução SQL usada para consultar o tópico. Para mais informações, consulte Referência SQL AWSiot no Guia da ferramenta de desenvolvimento AWS iot.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Sqlpropriedade de um AWS::IoT::TopicRule TopicRulePayload recurso.

Exemplos

Regra IOT

Exemplo de regra IOT

YAML

IoTRule: Type: IoTRule Properties: Sql: SELECT * FROM 'topic/test'

KinesisO objeto que descreve um Kinesis tipo de fonte de evento.

AWS SAM gera um AWS::Lambda::eventsourcemapping recursos quando este tipo de evento estádefinido.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

BatchSize: Integer BisectBatchOnFunctionError: Boolean DestinationConfig: DestinationConfig Enabled: Boolean MaximumBatchingWindowInSeconds: Integer MaximumRecordAgeInSeconds: Integer MaximumRetryAttempts: Integer ParallelizationFactor: Integer StartingPosition: String Stream: String

Properties

BatchSize

O número máximo de itens a serem recuperados em um único lote.

101

Page 107: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: inteiro

Obrigatório: Não

Padrão: -100

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oBatchSize propriedade de um AWS::Lambda::EventSourceMapping recurso.

Mínimo: 1

Máximo: 10000BisectBatchOnFunctionError

Se a função devolver um erro, divida o lote em dois e tente novamente.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oBisectBatchOnFunctionError propriedade de um AWS::Lambda::EventSourceMappingrecurso.

DestinationConfig

Um Amazon SQS fila ou Amazon SNS destino do tópico para registos eliminados.

Type: DestinationConfig

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDestinationConfig propriedade de um AWS::Lambda::EventSourceMapping recurso.

Enabled

Desabilita o mapeamento de origens de eventos para pausar a sondagem e a invocação.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEnabled propriedade de um AWS::Lambda::EventSourceMapping recurso.

MaximumBatchingWindowInSeconds

O máximo de tempo para reunir registros antes de invocar a função, em segundos.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMaximumBatchingWindowInSeconds propriedade de um AWS::Lambda::EventSourceMappingrecurso.

MaximumRecordAgeInSeconds

A idade máxima de um registo que a Lambda envia para uma função para processamento.

Type: inteiro

102

Page 108: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMaximumRecordAgeInSeconds propriedade de um AWS::Lambda::EventSourceMappingrecurso.

MaximumRetryAttempts

O número máximo de vezes para tentar novamente quando a função retorna um erro.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oMaximumRetryAttempts propriedade de um AWS::Lambda::EventSourceMapping recurso.

ParallelizationFactor

O número de lotes a processar a partir de cada derivação em simultâneo.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oParallelizationFactor propriedade de um AWS::Lambda::EventSourceMapping recurso.

StartingPosition

A posição em um fluxo da qual você deseja iniciar a leitura.

Valores compatíveis TRIM_HORIZON, LATEST, AT_TIMESTAMP.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oStartingPosition propriedade de um AWS::Lambda::EventSourceMapping recurso.

Stream

O ARN do fluxo de dados ou um consumidor de fluxo.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventSourceArn propriedade de um AWS::Lambda::EventSourceMapping recurso.

Exemplos

Origem do Evento Kinesis

Origem do Evento Kinesis

YAML

Events: KinesisEvent:

103

Page 109: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: Kinesis Properties: Stream: arn:aws:kinesis:us-east-1:123456789012:stream/my-stream StartingPosition: TRIM_HORIZON BatchSize: 10 Enabled: false

MSK

O objeto que descreve um MSK tipo de fonte de evento.

AWS SAM gera um AWS::Lambda::eventsourcemapping recursos quando este tipo de evento estádefinido.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

StartingPosition: String Stream: String Topics: List

Properties

StartingPosition

A posição em um fluxo da qual você deseja iniciar a leitura.

Valores compatíveis TRIM_HORIZON, LATEST, AT_TIMESTAMP.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oStartingPosition propriedade de um AWS::Lambda::EventSourceMapping recurso.

Stream

O ARN do fluxo de dados ou um consumidor de fluxo.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventSourceArn propriedade de um AWS::Lambda::EventSourceMapping recurso.

Topics

O nome do tópico Kafka.

Type: Lista

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Topicspropriedade de um AWS::Lambda::EventSourceMapping recurso.

104

Page 110: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Exemplos

Exemplo de MSK Amazon para o grupo existente

Segue-se um exemplo de um MSK tipo de fonte de evento para um Amazon MSK que já existe numa contaAWS.

YAML

Events: MSKEvent: Type: MSK Properties: StartingPosition: LATEST Stream: arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2 Topics: - MyTopic

Exemplo de MSK Amazon para o grupo declarado no mesmo modelo

Segue-se um exemplo de um MSK tipo de fonte de evento para um Amazon MSK grupo que é declarado nomesmo ficheiro de modelo.

YAML

Events: MSKEvent: Type: MSK Properties: StartingPosition: LATEST Stream: Ref: MyMskCluster # This must be the name of an MSK cluster declared in the same template file Topics: - MyTopic

S3

O objeto que descreve um S3 tipo de fonte de evento.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Bucket: String Events: String | List Filter: NotificationFilter

Properties

Bucket

O nome do bucket do S3. Este balde tem de existir no mesmo modelo.

Type: String.

105

Page 111: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à BucketName propriedadede um AWS::S3::Bucket recurso. Este é um campo obrigatório no SAM. Este campo aceita apenasuma referência ao balde S3 criado neste modelo

Events

O evento do bucket do Amazon S3 para o qual invocar a função do AWS Lambda. Ver Tipos deeventos suportados pela Amazon S3 para obter uma lista de valores válidos.

Type: Cadeia | Lista

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Eventpropriedade da AWS::S3::Bucket LambdaConfiguration tipo de dados.

Filter

As regras de filtragem que determinam o que Amazon S3 objetos invocam o Lambda função. Parainformações sobre Amazon S3 filtro de nomes chave, ver Configurar Amazon S3 Notificações deeventos no Guia da Ferramenta de Desenvolvimento da Amazon Simple Storage Service.

Type: NotificationFilter

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Filterpropriedade da AWS::S3::Bucket LambdaConfiguration tipo de dados.

Exemplos

S3-Evento

Exemplo de um evento S3.

YAML

Events: S3Event: Type: S3 Properties: Bucket: Ref: ImagesBucket # This must be the name of an S3 bucket declared in the same template file Events: s3:ObjectCreated:* Filter: S3Key: Rules: - Name: prefix # or "suffix" Value: value # The value to search for in the S3 object key names

ScheduleO objeto que descreve um Schedule tipo de fonte de evento.

AWS SAM gera um AWS::Eventos::Regra recursos quando este tipo de evento está definido.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

106

Page 112: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

YAML

Description: String Enabled: Boolean Input: String Name: String Schedule: String

Properties

Description

Uma descrição da regra.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDescription propriedade de um AWS::Events::Rule recurso.

Enabled

Indica se a regra está habilitada.

Para desativar a regra, defina esta propriedade para False.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Statepropriedade de um AWS::Events::Rule recurso.

Input

Texto JSON válido passado para o destino. Se você usar essa propriedade, nada do próprio texto doevento é passado para o destino.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Targetpropriedade de um AWS::Events::Rule Target recurso.

Name

O nome da regra. Se você não especificar um nome, o AWS CloudFormation gerará um ID físicoexclusivo e usará esse ID no nome da regra.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Namepropriedade de um AWS::Events::Rule recurso.

Schedule

A expressão de programação que determina quando e com que frequência a regra é executada. Paraobter mais informações, consulte Programar expressões para regras.

107

Page 113: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oScheduleExpression propriedade de um AWS::Events::Rule recurso.

Exemplos

evento do calendário cloudwatch

exemplo de evento de calendário Cloudwatch

YAML

CWSchedule: Type: Schedule Properties: Schedule: 'rate(1 minute)' Name: TestSchedule Description: test schedule Enabled: False

SNS

O objeto que descreve um SNS tipo de fonte de evento.

Gerar SAM AWS::SNS::Subscrição recursos quando este tipo de evento está definido

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

FilterPolicy: SnsFilterPolicy Region: String SqsSubscription: Boolean | SqsSubscriptionObject (p. 109) Topic: String

Properties

FilterPolicy

O JSON da política de filtros atribuído à assinatura. Para mais informações, consultegetsubscriçãodesubscrição na Amazon Simple Notification Service API Reference.

Type: política de mensagens

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oFilterPolicy propriedade de um AWS::SNS::Subscription recurso.

Region

Para assinaturas entre regiões, a região em que o tópico reside.

108

Page 114: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Se nenhuma região for especificada, o CloudFormation usará a região do chamador como o padrão.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Regionpropriedade de um AWS::SNS::Subscription recurso.

SqsSubscription

Definir esta propriedade para verdadeiro ou especificar SqsSubscriptionObject para ativar asnotificações de tópico SNS em lotes numa fila SQS. Definir esta propriedade para true cria umanova fila SQS, ao mesmo tempo que especifica uma SqsSubscriptionObject utiliza uma fila SQSexistente.

Type: Booleano | objecto de assinatura do sqssubscrito (p. 109)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Topic

O ARN do tópico que deseja assinar

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oTopicArn propriedade de um AWS::SNS::Topic recurso.

Exemplos

Exemplo de origem do evento SNS

Exemplo de origem do evento SNS

YAML

Properties: Topic: arn:aws:sns:us-east-1:123456789012:my_topic SqsSubscription: True FilterPolicy: store: - example_corp price_usd: - numeric: - ">=" - 100

SqsSubscriptionObject

Especifique uma opção de fila SQS existente para evento SNS

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

109

Page 115: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

YAML

BatchSize: String Enabled: Boolean QueueArn: String QueuePolicyLogicalId: String QueueUrl: String

Properties

BatchSize

O número máximo de itens a recuperar num único lote para a fila SQS.

Type: String.

Obrigatório: Não

Padrão: 10*

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Enabled

Desactiva o mapeamento de origem do evento SQS para interromper a interrogação e a invocação.

Type: booliano

Obrigatório: Não

Padrão: Verdadeiro.

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

QueueArn

Especifique um ARN de fila SQS existente.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

QueuePolicyLogicalId

Forneça um nome de logicalid personalizado para o AWS::SQS::quepolítica recurso.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

QueueUrl

Especifique o URL da fila associado ao QueueArn propriedade.

Type: String.

110

Page 116: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

SQS existente para evento SNS

Exemplo para adicionar fila SQS existente para subcimentar a um tópico SNS.

YAML

QueuePolicyLogicalId: CustomQueuePolicyLogicalIdQueueArn: Fn::GetAtt: MyCustomQueue.ArnQueueUrl: Ref: MyCustomQueueBatchSize: 5

SQS

O objeto que descreve um SQS tipo de fonte de evento.

Gerar SAM AWS::Lambda::eventsourcemapping recursos quando este tipo de evento está definido

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

BatchSize: Integer Enabled: Boolean Queue: String

Properties

BatchSize

O número máximo de itens a serem recuperados em um único lote.

Type: inteiro

Obrigatório: Não

Padrão: 10*

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oBatchSize propriedade de um AWS::Lambda::EventSourceMapping recurso.

Mínimo: 1

Máximo: 10Enabled

Desabilita o mapeamento de origens de eventos para pausar a sondagem e a invocação.

111

Page 117: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEnabled propriedade de um AWS::Lambda::EventSourceMapping recurso.

Queue

O ARN da fila.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventSourceArn propriedade de um AWS::Lambda::EventSourceMapping recurso.

Exemplos

Evento do &SQS;

Evento do &SQS;

YAML

Events: SQSEvent: Type: SQS Properties: Queue: arn:aws:sqs:us-west-2:012345678901:my-queue BatchSize: 10 Enabled: false

FunctionCodeO pacote de implementação para uma função Lambda.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Bucket: String Key: String Version: String

Properties

Bucket

Um bucket do Amazon S3 na mesma região da AWS da sua função.

Type: String.

Obrigatório: Sim

112

Page 118: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oS3Bucket propriedade da AWS::Lambda::Function Code tipo de dados.

Key

A chave do Amazon S3 do pacote de implantação.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o S3Keypropriedade da AWS::Lambda::Function Code tipo de dados.

Version

Para objetos com controle de versão, a versão do objeto do pacote de implantação a ser usada.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oS3ObjectVersion propriedade da AWS::Lambda::Function Code tipo de dados.

Exemplos

FunctionCode

Exemplo do código de função

YAML

FunctionCode: Bucket: mybucket-name Key: mykey-name Version: 121212

AWS::sem servidor::httpapiCria uma API, que lhe permite criar API restful com menor latência e menores custos do que as API REST.Para mais informações sobre as API http consulte API HTTP no Guia do desenvolvedor do API Gateway.

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Type: AWS::Serverless::HttpApiProperties: AccessLogSettings: AccessLogSettings Auth: HttpApiAuth (p. 119) CorsConfiguration: String | HttpApiCorsConfiguration (p. 122) DefaultRouteSettings: RouteSettings DefinitionBody: String

113

Page 119: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

DefinitionUri: String | HttpApiDefinition (p. 124) Domain: HttpApiDomainConfiguration (p. 125) FailOnWarnings: Boolean RouteSettings: RouteSettings StageName: String StageVariables: Json Tags: Map

PropertiesAccessLogSettings

Configurações para o acesso de registro em log em um estágio.

Type: AccessLogSettings

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oAccessLogSettings propriedade de um AWS::ApiGatewayV2::Stage recurso.

Auth

Configurar autorização para controlar o acesso ao seu API Gateway API.

Para obter mais informações sobre configurar o acesso Autorizadores JWT no API Gateway Guia daFerramenta de Desenvolvimento.

Type: dádãoromódio (p. 119)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

CorsConfiguration

Gerir partilha de recursos de Origem Cruzada (CORS) para todas as suas API HTTP. Especifique odomínio para permitir uma cadeia ou especifique um dicionário com configuração de Cors adicional.OBSERVAÇÃO: O CORS requer AWS SAM para modificar a sua definição de openapi. Por isso, sófunciona em conjunto com o openapi definido com a definiçãode definição.

Para mais informações sobre CORS, consulte Configurar CORS para uma API HTTP no Guia daFerramenta de Desenvolvimento do Amazon API Gateway.

Observação Se a configuração de corsconfiguração estiver definida em openapi e no nível depropriedade, AWS SAM dá-lhes as propriedades necessárias.

Observação Se esta propriedade estiver definida para True então todas as origens são permitidas.

Type: Cadeia | httpapicorsconfiguration (p. 122)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

DefaultRouteSettings

As definições de caminho predefinidas para esta API HTTP. Estas definições aplicam-se a todas asrotas, a menos que sejam substituídas pelo RouteSettings propriedade para determinadas rotas.

114

Page 120: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

Type: RouteSettings

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oRouteSettings propriedade de um AWS::ApiGatewayV2::Stage recurso.

DefinitionBody

especificação openapi que descreve a sua API. Se não DefinitionUri nem DefinitionBody , oSAM irá gerar uma DefinitionBody para si com base na configuração do seu modelo.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à Body propriedade de umAWS::ApiGatewayV2::Api recurso. Se forem fornecidas determinadas propriedades, o conteúdopode ser inserido ou modificado no organismo definiçãoantes de ser aprovado para a formaçãode turvação. As propriedades incluem Auth e um EventSource de tipo httpapi ligado para umAWS::Serverless::Function.

DefinitionUri

AWS S3 Uri, caminho de ficheiro local ou objeto de localização do documento openapi definindo aAPI. O objeto AWS S3 esta referência de propriedade tem de ser um ficheiro openapi válido. Se nãoDefinitionUri nem DefinitionBody , o SAM irá gerar uma DefinitionBody para si com basena configuração do seu modelo.

Se for fornecido um caminho de ficheiro local, o modelo deve passar pelo fluxo de trabalho que inclui osam deploy ou sam package comando, para que a definição seja transformada correctamente.

As funções intrínsecas não são suportadas em ficheiros openapi externos referenciados porDefinitionUri. Utilize em vez disso DefinitionBody propriedade com o Incluir transformaçãopara importar uma definição openapi para o modelo.

Type: Cadeia | httchendefinition (p. 124)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à BodyS3Locationpropriedade de um AWS::ApiGatewayV2::Api recurso. A nestada Amazon S3 as propriedades sãonomeadas de forma diferente.

Domain

Configura um domínio personalizado para este API Gateway API.

Type: httpapiidoconfiguração (p. 125)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

FailOnWarnings

Especifica se pretende reverter a criação da API (verdadeiro) ou não (falso) quando é encontrado umaviso. O valor padrão é false.

Type: booliano

Obrigatório: Não

115

Page 121: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oFailOnWarnings propriedade de um AWS::ApiGatewayV2::Api recurso.

RouteSettings

As definições de itinerário por percurso para esta API HTTP. Para mais informações sobre definiçõesde itinerário, consulte AWS::apigatewayv2::Stage routesettings no API Gateway Guia da Ferramentade Desenvolvimento.

Type: RouteSettings

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oRouteSettings propriedade de um AWS::ApiGatewayV2::Stage recurso.

StageName

O nome da fase API. Se um nome não for dado, SAM irá utilizar o $default da API Gateway.

Type: String.

Obrigatório: Não

Predefinição: $default

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oStageName propriedade de um AWS::ApiGatewayV2::Stage recurso.

StageVariables

Um mapa que define as variáveis da fase para uma Fase. Os nomes de variáveis podem tercaracteres alfanuméricos e sublinhados, e os valores devem corresponder a [A-Za-z0-9-._~:/?#&=,]+.

Type: Json

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oStageVariables propriedade de um AWS::ApiGatewayV2::Stage recurso.

Tags

Um mapa (cadeia a cadeia) que especifica as etiquetas a adicionar a esta fase do Gateway API.As teclas e os valores estão limitados a caracteres alfanuméricos. As teclas podem ser 1 a 127caracteres Unicode de comprimento e não podem ser pré-fixados com aws:. Os valores podem ser 1a 255 caracteres Unicode de comprimento. OBSERVAÇÃO: As etiquetas requerem AWS SAM paramodificar a sua definição de openapi. Portanto, funciona apenas se o openapi inline for definido com ocorpo definition.

Type: mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Notas adicionais: Porque as etiquetas requerem AWS SAM para modificar a sua definiçãoopenapi, só serão adicionados se o DefinitionBody propriedade está especificada—nãoserão adicionadas etiquetas se DefinitionUri propriedade é fornecida. AWS SAM adicionaautomaticamente um httpapi:createdBy:SAM etiqueta. As etiquetas também serão adicionadasa AWS::ApiGatewayV2::Stage e AWS::ApiGatewayV2::DomainName (se DomainName éespecificado).

116

Page 122: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

Valores de retornoRef

Quando passar a ID lógica deste recurso para a função de Ref intrínseca, a Ref devolve a ID da API doAWS::ApiGatewayV2::Api como a1bcdef2gh.

Para obter mais informações sobre como usar a função Ref, consulte Ref.

ExemplosAPI Http Simples

Mínimo necessário para configurar um parâmetro de avaliação httpapi suportado por uma função Lambda.Utiliza a API HTTP predefinida que SAM cria.

YAML

AWSTemplateFormatVersion: '2010-09-09'Description: AWS SAM template with a simple API definitionResources: ApiFunction: Type: AWS::Serverless::Function Properties: Events: ApiEvent: Type: HttpApi Handler: index.handler InlineCode: | def handler(event, context): return {'body': 'Hello World!', 'statusCode': 200} Runtime: python3.7Transform: AWS::Serverless-2016-10-31

API http com autorização

Exemplo de como configurar a autorização nos parâmetros de avaliação da API.

YAML

Properties: FailOnWarnings: True Auth: DefaultAuthorizer: OAuth2 Authorizers: OAuth2: AuthorizationScopes: - scope4 JwtConfiguration: issuer: "https://www.example.com/v1/connect/oauth2" audience: - MyApi IdentitySource: "$request.querystring.param" OpenIdAuth: AuthorizationScopes: - scope1 - scope2 OpenIdConnectUrl: "https://www.example.com/v1/connect/oidc/.well-known/openid-configuration" JwtConfiguration:

117

Page 123: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

issuer: "https://www.example.com/v1/connect/oidc" audience: - MyApi IdentitySource: "$request.querystring.param"

API http com documento OpenapiMostra como adicionar openapi ao documento.

Note que SAM irá preencher quaisquer integrações lambda em falta para eventos de httpapi quereferenciam esta API. A SAM irá também adicionar quaisquer caminhos em falta que indiquem a referênciade eventos.

YAML

Properties: FailOnWarnings: True DefinitionBody: info: version: '1.0' title: Ref: AWS::StackName paths: "/": get: security: - OpenIdAuth: - scope1 - scope2 responses: {} openapi: 3.0.1 securitySchemes: OpenIdAuth: type: openIdConnect x-amazon-apigateway-authorizer: identitySource: "$request.querystring.param" type: jwt jwtConfiguration: audience: - MyApi issuer: https://www.example.com/v1/connect/oidc openIdConnectUrl: https://www.example.com/v1/connect/oidc/.well-known/openid-configuration

API http com definições de configuraçãoMostra como adicionar API e configurações de fase ao modelo.

YAML

AWSTemplateFormatVersion: '2010-09-09'Transform: AWS::Serverless-2016-10-31Parameters: StageName: Type: String Default: Prod Resources: HttpApiFunction: Type: AWS::Serverless::Function Properties: InlineCode: |

118

Page 124: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

def handler(event, context): import json return { "statusCode": 200, "body": json.dumps(event), } Handler: index.handler Runtime: python3.7 Events: ExplicitApi: # warning: creates a public endpoint Type: HttpApi Properties: ApiId: !Ref HttpApi Method: GET Path: /path TimeoutInMillis: 15000 PayloadFormatVersion: "2.0" RouteSettings: ThrottlingBurstLimit: 600

HttpApi: Type: AWS::Serverless::HttpApi Properties: StageName: !Ref StageName Tags: Tag: Value AccessLogSettings: DestinationArn: !GetAtt AccessLogs.Arn Format: $context.requestId DefaultRouteSettings: ThrottlingBurstLimit: 200 RouteSettings: "GET /path": ThrottlingBurstLimit: 500 # overridden in HttpApi Event StageVariables: StageVar: Value FailOnWarnings: True

AccessLogs: Type: AWS::Logs::LogGroup

Outputs: HttpApiUrl: Description: URL of your API endpoint Value: Fn::Sub: 'https://${HttpApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/${StageName}/' HttpApiId: Description: Api id of HttpApi Value: Ref: HttpApi

HttpApiAuthConfigurar autorização para controlar o acesso ao seu API Gateway API.

Para obter mais informações sobre configurar o acesso Autorizadores JWT no API Gateway Guia daFerramenta de Desenvolvimento.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

119

Page 125: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

YAML

Authorizers: OAuth2Authorizer (p. 120) DefaultAuthorizer: String

Properties

Authorizers

O autorizador utilizado para controlar o acesso ao seu API Gateway API.

Type: oauth2Autorizador (p. 120)

Obrigatório: Não

Padrão: Nenhum

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Notas adicionais: SAM adiciona os Autorizadores à definição openapi de uma Api.DefaultAuthorizer

Especifique um autorizador predefinido para um API Gateway API, que será utilizado para autorizarchamadas API por predefinição.

Type: String.

Obrigatório: Não

Padrão: Nenhum

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

oauth2 Autorizador

Exemplo de autorizador oauth2

YAML

Auth: Authorizers: OAuth2Authorizer: AuthorizationScopes: - scope1 - scope2 JwtConfiguration: issuer: "https://www.example.com/v1/connect/oauth2" audience: - MyApi IdentitySource: "$request.querystring.param" DefaultAuthorizer: OAuth2Authorizer

OAuth2AuthorizerDefinição para um autorizador oauth 2.0.

120

Page 126: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

Para obter mais informações, consulte a documentação do API Gateway.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

AuthorizationScopes: List IdentitySource: String JwtConfiguration: Map

Properties

AuthorizationScopes

Lista de âmbitos de autorização para este autorizador.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

IdentitySource

Expressão de origem de identidade para este autorizador.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

JwtConfiguration

Configuração JSON Web Token (JWT) para este autorizador.

Este é passado até ao jwtConfiguration secção de um x-amazon-apigateway-authorizerno securitySchemes de um documento openapi.

Type: mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

oauth2 Autorizador

Exemplo de autorizador oauth2

YAML

Auth: Authorizers:

121

Page 127: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

OAuth2Authorizer: AuthorizationScopes: - scope1 JwtConfiguration: issuer: "https://www.example.com/v1/connect/oauth2" audience: - MyApi IdentitySource: "$request.querystring.param" DefaultAuthorizer: OAuth2Authorizer

HttpApiCorsConfigurationGerir partilha de recursos de origem cruzada (CORS) para as suas API HTTP. Especifique o domínio parapermitir uma cadeia ou especifique um dicionário com configuração de Cors adicional. OBSERVAÇÃO:O Cors requer que SAM modifique a sua definição openapi, pelo que só funciona com a openapi inlinedefinida no DefinitionBody propriedade.

Para mais informações sobre CORS, consulte Configurar CORS para uma API HTTP no Guia daFerramenta de Desenvolvimento do Amazon API Gateway.

Observação Se a configuração httpapicorsé definida tanto em openapi como no nível de propriedade, AWSSAM dá-lhes as propriedades necessárias.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

AllowCredentials: Boolean AllowHeaders: List AllowMethods: List AllowOrigins: List ExposeHeaders: List MaxAge: Integer

Properties

AllowCredentials

Especifica se as credenciais estão incluídas na solicitação de CORS.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

AllowHeaders

Representa uma coleção de cabeçalhos permitidos.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

122

Page 128: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

AllowMethods

Representa uma coleção de métodos HTTP permitidos.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

AllowOrigins

Representa uma coleção de origens permitidas.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

ExposeHeaders

Representa uma coleção de cabeçalhos expostos.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

MaxAge

Especifica o número de segundos que o navegador deve armazenar em cache os resultados dasolicitação de simulação.

Type: inteiro

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

HttpApiCorsConfiguration

Exemplo de configuração HTTP API.

YAML

CorsConfiguration: AllowOrigins: - "https://example.com" AllowHeaders: - x-apigateway-header AllowMethods: - GET MaxAge: 600 AllowCredentials: True

123

Page 129: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

HttpApiDefinitionUm documento openapi que define a API.

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Bucket: String Key: String Version: String

Properties

Bucket

O nome do Amazon S3 balde onde o ficheiro openapi é armazenado.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Bucketpropriedade da AWS::ApiGatewayV2::Api BodyS3Location tipo de dados.

Key

A tecla Amazon S3 do ficheiro openapi.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Keypropriedade da AWS::ApiGatewayV2::Api BodyS3Location tipo de dados.

Version

Para objectos versionados, a versão do ficheiro openapi.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oVersion propriedade da AWS::ApiGatewayV2::Api BodyS3Location tipo de dados.

Exemplos

Exemplo de definição Uri

Exemplo de definição de API

YAML

DefinitionUri: Bucket: mybucket-name

124

Page 130: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

Key: mykey-name Version: 121212

HttpApiDomainConfigurationConfigura um domínio personalizado para uma API.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

BasePath: List CertificateArn: String DomainName: String EndpointConfiguration: String Route53: Route53Configuration (p. 127)

Properties

BasePath

Lista de caminhos de base a configurar com o API Gateway Nome do domínio.

Type: Lista

Obrigatório: Não

Padrão:

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à BasePathpropriedade de um AWS::ApiGatewayV2::ApiMapping recurso. SAM irá criar váriosAWS::ApiGatewayV2::ApiMapping recursos, um por BasePath especificados nesta propriedade.

Notas adicionais: SAM irá criar vários AWS::ApiGatewayV2::ApiMapping recursos, um porBasePath especificados nesta propriedade.

CertificateArn

A referência a um certificado gerido pela AWS para utilização pelo ponto final para este nome dedomínio. O AWS Certificate Manager é a única origem compatível.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à CertificateArnpropriedade de um AWS::ApiGateway2::DomainName DomainNameConfigurationrecurso. Se EndpointConfiguration está definido para REGIONAL (o valor predefinido),CertificateArn mapas para certificaçãoregional em AWS::ApiGateway::DomainName. Se oEndpointConfiguration está definido para EDGE, CertificateArn mapas para certificaçãoarnem AWS::ApiGateway::DomainName.

Notas adicionais: Se EndpointConfiguration está definido para REGIONAL (o valor predefinido),CertificateArn mapas para certificaçãoregional em AWS::ApiGateway::DomainName. Se oEndpointConfiguration está definido para EDGE, CertificateArn mapas para certificaçãoarnem AWS::ApiGateway::DomainName.

125

Page 131: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

DomainName

O nome de domínio personalizado para o seu API Gateway API. Letras maiúsculas não sãocompatíveis.

AWS SAM gera um AWS::ApiGatewayV2::DomainName recursos quando esta propriedadeestá definida. Para obter informações sobre este cenário, consulte Propriedade domainname estáespecificada (p. 156). Para informações gerais sobre a geração AWS CloudFormation recursos, verGerado AWS CloudFormation Recursos (p. 150).

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDomainName propriedade de um AWS::ApiGateway2::DomainName recurso.

EndpointConfiguration

Propriedade para definir o tipo de API Gateway parâmetro de avaliação para ser mapeado para odomínio personalizado. O valor desta propriedade controla como CertificateArn a propriedade émapeada em AWS CloudFormation. Ver CertificateArn acima.

Valor válido apenas para httpapis REGIONAL.

Type: String.

Obrigatório: Não

Padrão: REGIONAL

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Route53

Propriedade que adiciona a configuração Via53 com base nos valores definidos.

Type: Caminho53Configuração (p. 127)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

DomainName

exemplo domainname

YAML

Domain: DomainName: www.example.com CertificateArn: arn-example EndpointConfiguration: REGIONAL Route53: HostedZoneId: Z1PA6795UKMFR9 BasePath: - /foo - /bar

126

Page 132: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

Route53ConfigurationConfigura os conjuntos de registos Route53 para uma API.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

DistributionDomainName: String EvaluateTargetHealth: Boolean HostedZoneId: String HostedZoneName: String IpV6: Boolean

Properties

DistributionDomainName

Configura uma distribuição personalizada do nome de domínio personalizado da API.

Type: String.

Obrigatório: Não

Padrão: Utilize o API Gateway distribuição.

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDNSName propriedade de um AWS::Route53::RecordSetGroup AliasTarget recurso.

Notas adicionais: O nome de domínio de um CloudFront distribuição.EvaluateTargetHealth

Quando o avaliador é verdadeiro, um registo de alias herda a saúde do recurso AWS referenciado,como um Elastic Load Balancing balanceador de carga ou outro registo na zona alojada.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEvaluateTargetHealth propriedade de um AWS::Route53::RecordSetGroup AliasTargetrecurso.

Notas adicionais: Não é possível definir o avaliador para verdadeiro quando o alvo alternativo é umCloudFront distribuição.

HostedZoneId

O ID da zona hospedada na qual você deseja criar registros.

Especifique HostedZoneName ou HostedZoneId, mas não ambos. Se houver várias zonashospedadas com o mesmo nome de domínio, especifique a zona hospedada usando HostedZoneId.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oHostedZoneId propriedade de um AWS::Route53::RecordSetGroup RecordSet recurso.

127

Page 133: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::sem servidor::layerversion

HostedZoneName

O nome da zona hospedada na qual você deseja criar registros.

Especifique HostedZoneName ou HostedZoneId, mas não ambos. Se houver várias zonashospedadas com o mesmo nome de domínio, especifique a zona hospedada usando HostedZoneId.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oHostedZoneName propriedade de um AWS::Route53::RecordSetGroup RecordSet recurso.

IpV6

Quando esta propriedade está definida, AWS SAM cria uma AWS::Route53::RecordSet recursose conjuntos Tipo para AAAA para a hostedzone fornecida.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

Exemplo de configuração Route 53

Este exemplo mostra como configurar Route 53.

YAML

Domain: DomainName: www.example.com CertificateArn: arn-example EndpointConfiguration: EDGE Route53: HostedZoneId: Z1PA6795UKMFR9 EvaluateTargetHealth: true DistributionDomainName: xyz

AWS::sem servidor::layerversionCria uma versão de utilizador Lambda que contém uma biblioteca ou código de execução necessário poruma função Lambda.

O AWS::sem servidor::layerversion (p. 128) recursos também suporta o Metadata atributo de recursos,para que possa instruir AWS SAM para criar camadas incluídas na sua aplicação. Para mais informaçõessobre as camadas de construção, consulte Camadas de construção (p. 171).

Nota importante: Desde a libertação do atualizarapólice atributo de recursos em AWS CloudFormation,AWS::Lambda::layerversion (recomendado) oferece os mesmos benefícios que AWS::semservidor::layerversion (p. 128).

Quando uma versão sem servidor é transformada, SAM também transforma a ID lógica do recurso paraque as antigas versões layerversions não sejam automaticamente eliminadas por turvação quando orecurso é actualizado.

128

Page 134: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::sem servidor::layerversion

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Type: AWS::Serverless::LayerVersionProperties: CompatibleRuntimes: List ContentUri: String | LayerContent (p. 131) Description: String LayerName: String LicenseInfo: String RetentionPolicy: String

PropertiesCompatibleRuntimes

Lista de tempos de execução compatíveis com esta versão layerversion.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oCompatibleRuntimes propriedade de um AWS::Lambda::LayerVersion recurso.

ContentUri

AWS S3 Uri, caminho de ficheiro local ou objeto de conteúdo de propriedades do código de camada.

Se for fornecido um objecto AWS S3 Uri ou layercontent, o objecto AWS S3 referenciado tem de serum arquivo ZIP válido que contenha o conteúdo de um Camada lambda AWS.

Se for fornecido um caminho de ficheiro local, o modelo deve passar pelo fluxo de trabalho que inclui osam deploy ou sam package para que o conteúdo seja transformado correctamente.

Type: Cadeia | conteúdodeorigem (p. 131)

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à Content propriedade de umAWS::Lambda::LayerVersion recurso. A nestada Amazon S3 as propriedades são nomeadas deforma diferente.

Description

Descrição desta camada.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDescription propriedade de um AWS::Lambda::LayerVersion recurso.

LayerName

O nome ou o nome de recurso da Amazon (ARN) da camada.

129

Page 135: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::sem servidor::layerversion

Type: String.

Obrigatório: Não

Padrão: ID lógica de recurso

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à LayerName propriedade deum AWS::Lambda::LayerVersion recurso. Se não especificar um nome, a ID lógica do recursoserá utilizada como o nome.

LicenseInfo

Informações sobre a licença para esta versão layerversion.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oLicenseInfo propriedade de um AWS::Lambda::LayerVersion recurso.

RetentionPolicy

Especifica se versões antigas da sua versão de utilizador são retidas ou eliminadas após umaatualização.

Valores compatíveis Retain e Delete.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Notas adicionais: Quando especificar Retain, AWS SAM adiciona um Atributo de recurso deDeletionPolicy: Retain para a transformação AWS::Lambda::LayerVersion recurso.

Valores de retornoRef

Quando a ID lógica deste recurso é fornecida à função intrínseca Ref, devolve o recurso ARN da versãonegativa subjacente da Lambda.

Para obter mais informações sobre como usar a função Ref, consulte Ref.

ExemplosLayerVersionExample

Exemplo de uma versão

YAML

Properties: LayerName: MyLayer Description: Layer description ContentUri: 's3://my-bucket/my-layer.zip' CompatibleRuntimes:

130

Page 136: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::sem servidor::layerversion

- nodejs10.x - nodejs12.x LicenseInfo: 'Available under the MIT-0 license.' RetentionPolicy: Retain

LayerContentUm arquivo ZIP que contém os conteúdos de uma camada do AWS Lambda.

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Bucket: String Key: String Version: String

Properties

Bucket

O bucket do Amazon S3 do arquivamento de camada.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oS3Bucket propriedade da AWS::Lambda::LayerVersion Content tipo de dados.

Key

A chave do Amazon S3 do arquivamento de camada.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o S3Keypropriedade da AWS::Lambda::LayerVersion Content tipo de dados.

Version

Para objetos com controle de versão, a versão do objeto de arquivamento de camada a ser usada.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oS3ObjectVersion propriedade da AWS::Lambda::LayerVersion Content tipo de dados.

Exemplos

LayerContent

Exemplo de conteúdo de camadas

131

Page 137: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::SimpleTable

YAML

LayerContent: Bucket: mybucket-name Key: mykey-name Version: 121212

AWS::Serverless::SimpleTableCria uma tabela de dinmodb com uma chave principal de atributo único. É útil quando os dados apenastêm de ser acedidos através de uma chave principal.

Para utilizar a funcionalidade mais avançada do dinmodb, utilize um AWS::dinmodb::tabela recursos emvez de.

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Type: AWS::Serverless::SimpleTableProperties: PrimaryKey: PrimaryKeyObject (p. 134) ProvisionedThroughput: ProvisionedThroughput SSESpecification: SSESpecification TableName: String Tags: Map

PropertiesPrimaryKey

Nome e tipo de atributo a utilizar como chave principal da tabela. Se não for fornecido, a chaveprincipal será uma String com um valor de id.

Observação O valor desta propriedade não pode ser modificado depois de este recurso ser criado.

Type: objecto principal (p. 134)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

ProvisionedThroughput

Ler e escrever informações de aprovisionamento de rendimento.

Se ProvisionedThroughput não está especificado BillingMode será especificado comoPAY_PER_REQUEST.

Type: ProvisionedThroughput

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oProvisionedThroughput propriedade de um AWS::DynamoDB::Table recurso.

132

Page 138: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::SimpleTable

SSESpecification

Especifica as configurações para habilitar a criptografia no lado do servidor.

Type: SSESpecification

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oSSESpecification propriedade de um AWS::DynamoDB::Table recurso.

TableName

Nome da tabela do dinmodb.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oTableName propriedade de um AWS::DynamoDB::Table recurso.

Tags

Um mapa (cadeia a cadeia) que especifica as etiquetas a adicionar a esta tabela simpática. As teclase os valores estão limitados a caracteres alfanuméricos. As teclas podem ser 1 a 127 caracteresUnicode de comprimento e não podem ser pré-fixados com aws:. Os valores podem ser 1 a 255caracteres Unicode de comprimento.

Type: mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é semelhante à Tags propriedade de umAWS::DynamoDB::Table recurso. A propriedade das etiquetas em SAM consiste em Key:Value pairs(Chave:Pares de valores); na formação de turvação consiste numa lista de objectos Tag (Etiqueta).

Valores de retornoRef

Quando a ID lógica deste recurso é fornecida à função intrínseca Ref, devolve o nome do recurso databela da dinamdb subjacente.

Para obter mais informações sobre como usar a função Ref, consulte Ref.

ExemplosSimpleTableExample

Exemplo de uma tabela simpática

YAML

Properties: TableName: my-table Tags: Department: Engineering

133

Page 139: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::SimpleTable

AppType: Serverless

PrimaryKeyObjectO objeto que descreve as propriedades de uma tecla primária.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Name: String Type: String

Properties

Name

Nome do atributo da chave principal.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oAttributeName propriedade da AWS::DynamoDB::Table AttributeDefinition tipo de dados.

Notas adicionais: Esta propriedade também é passada para atributename propriedade de umAWS::DynamoDB::Table KeySchema tipo de dados.

Type

O tipo de dados para a chave principal.

Valores compatíveis String, Number, Binary.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oAttributeType propriedade da AWS::DynamoDB::Table AttributeDefinition tipo de dados.

Exemplos

PrimaryKey

Exemplo principal de chave.

YAML

Properties: PrimaryKey: Name: MyPrimaryKey Type: String

134

Page 140: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

AWS::Serverless::StateMachineCria um AWS Step Functions máquina de estado, que pode utilizar para orquestrar Lambda e outrosrecursos AWS para formar fluxos de trabalho complexos e robustos.

Para obter mais informações sobre o Step Functions, consulte o Guia do desenvolvedor do AWS StepFunctions.

Observação Para gerir AWS SAM modelos que contêm Step Functions máquinas, tem de utilizar a versão0.52.0 ou posterior do AWS SAM CLI. Para verificar qual a versão que tem, execute o comando sam --version.

SintaxePara declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Type: AWS::Serverless::StateMachineProperties: Definition: Map DefinitionSubstitutions: Map DefinitionUri: String | S3Location Events: EventSource (p. 138) Logging: LoggingConfiguration Name: String Policies: String | List | Map Role: String Tags: Map Type: String

PropertiesDefinition

A definição de estado da máquina é um objeto, onde o formato do objeto corresponde ao formato doseu AWS SAM ficheiro de modelo, por exemplo JSON ou YLMA. As definições da máquina de estadoaderem ao Idioma dos Estados Unidos da América.

Para um exemplo de uma definição de máquina em linha, consulte Exemplos (p. 138).

Tem de fornecer um Definition ou um DefinitionUri.

Type: mapa

Obrigatório: Condicional

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

DefinitionSubstitutions

Um mapa de cadeia para cadeia que especifica os mapeamentos para variáveis de posição nadefinição de máquina de estado. Isto permite-lhe injectar valores obtidos no tempo de execução, porexemplo, de funções intrínsecas, na definição da máquina de estado.

Type: mapa

Obrigatório: Não

135

Page 141: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

AWS CloudFormation compatibilidade: Esta propriedade é semelhante àDefinitionSubstitutions propriedade de um AWS::StepFunctions::StateMachinerecurso. Se forem especificadas quaisquer funções intrínsecas numa definição de máquina em linha,AWS SAM adiciona entradas a esta propriedade para as injetar na definição da máquina de estado.

DefinitionUri

O Amazon Simple Storage Service (Amazon S3) URI ou caminho de ficheiro local da definição damáquina de estado escrita em Idioma dos Estados Unidos da América.

Se fornecer um caminho de ficheiro local, o modelo deve passar pelo fluxo de trabalho que inclui osam deploy ou sam package para transformar correctamente a definição. Para o fazer, tem deutilizar a versão 0.52.0 ou posterior do AWS SAM CLI.

Tem de fornecer um Definition ou um DefinitionUri.

Type: Cadeia | Localização S3

Obrigatório: Condicional

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDefinitionS3Location propriedade de um AWS::StepFunctions::StateMachine recurso.

Events

Especifica os eventos que accionam esta máquina de estado. Os eventos consistem num tipo e umconjunto de propriedades que dependem do tipo.

Type: fonte de depósito (p. 138)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Logging

Define quais os eventos do histórico de execução registados e onde são registados.

Type: LoggingConfiguration

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oLoggingConfiguration propriedade de um AWS::StepFunctions::StateMachine recurso.

Name

O nome da máquina de estado do .

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oStateMachineName propriedade de um AWS::StepFunctions::StateMachine recurso.

Policies

Uma ou mais políticas que a função de execução para esta máquina estatal necessita.

Esta propriedade aceita uma única cadeia ou uma lista de cadeias e pode ser o nome de AWS geridoAWS Identity and Access Management (IAM) políticas, AWS SAM modelos de política ou um ou maisem linha IAM documentos da apólice formatados como Mapa.

136

Page 142: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

Você fornece um Role ou Policies.

Se o Role propriedade está definida, esta propriedade é ignorada.

Type: Cadeia | Lista | Mapa

Obrigatório: Condicional

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Role

O Nome de Recursos Amazon (ARN) de um IAM função a utilizar como a função de execução damáquina presente.

Tem de fornecer um Role ou Policies.

Type: String.

Obrigatório: Condicional

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oRoleArn propriedade de um AWS::StepFunctions::StateMachine recurso.

Tags

Um mapa de cadeia para cadeia que especifica as etiquetas adicionadas à máquina de estado e acorrespondente IAM função de execução.

Type: mapa

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Tagspropriedade de um AWS::StepFunctions::StateMachine recurso.

Type

O tipo da máquina de estado.

Valores válidos: {, } STANDARD ou EXPRESS.

Type: String.

Obrigatório: Não

Padrão: STANDARD

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oStateMachineType propriedade de um AWS::StepFunctions::StateMachine recurso.

Valores de retornoRef

Quando fornece a ID lógica deste recurso ao Ref função intrínseca, Ref devolve o Nome do RecursoAmazon (ARN) do AWS::StepFunctions::StateMachine recurso.

Para obter mais informações sobre como usar a função Ref, consulte Ref.

137

Page 143: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

Fn::GetAttFn::GetAtt retorna um valor para um atributo especificado deste tipo. Estes são os atributos disponíveise os valores de retorno de amostra.

Para obter mais informações sobre como usar Fn::GetAtt, consulte Fn::GetAtt.

Name

Devolve o nome da máquina de estado, como HelloWorld-StateMachine.

ExemplosDeclarar o ficheiro de definição da máquinaO seguinte é um exemplo de uma máquina de estado definida com um ficheiro de definição. Omy_state_machine.asl.json o ficheiro tem de ser escrito em Idioma dos Estados Unidos da América.

Neste exemplo, o DefinitionSubstitution as entradas permitem que a máquina estatal incluarecursos que são declarados no AWS SAM ficheiro de modelo.

YAML

MySampleStateMachine: Type: AWS::Serverless::StateMachine Properties: DefinitionUri: statemachine/my_state_machine.asl.json Role: arn:aws:iam::123456123456:role/service-role/my-sample-role DefinitionSubstitutions: MyFunctionArn: !GetAtt MyFunction.Arn MyDDBTable: !Ref TransactionTable

Definição de máquina de estado em linhaSegue-se um exemplo de uma definição de máquina em linha.

Neste exemplo, o AWS SAM o ficheiro do modelo está escrito no YLMA, pelo que a definição da máquinade estado também está na YLMA. Para declarar uma definição de máquina em linha no JSON, escreva oseu AWS SAM ficheiro de modelo em JSON.

YAML

MySampleStateMachine: Type: AWS::Serverless::StateMachine Properties: Definition: StartAt: MyLambdaState States: MyLambdaState: Type: Task Resource: arn:aws:lambda:us-east-1:123456123456:function:my-sample-lambda-app End: true Role: arn:aws:iam::123456123456:role/service-role/my-sample-role

EventSourceO objeto que descreve a fonte de eventos que acciona a máquina de estado. Cada evento consistenum tipo e um conjunto de propriedades que dependem desse tipo. Para mais informações sobre aspropriedades de cada fonte de evento, consulte o subtópico correspondente a esse tipo.

138

Page 144: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Properties: Schedule (p. 141) | CloudWatchEvent (p. 148) | EventBridgeRule (p. 139) | Api (p. 142) Type: String

Properties

Properties

Um objeto que descreve as propriedades deste mapeamento de eventos. O conjunto de propriedadesdeve estar em conformidade com o definido Type.

Type: Calendário (p. 141) | evento cloudwatchevent (p. 148) | eventbridgerule (p. 139) |API (p. 142)

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Type

O tipo de evento.

Valores válidos: {, } Api, Schedule, CloudWatchEvent, EventBridgeRule.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

API

Segue-se um exemplo de um evento do API digite.

YAML

ApiEvent: Type: Api Properties: Method: get Path: /group/{user} RestApiId: Ref: MyApi

EventBridgeRule

O objeto que descreve um EventBridgeRule tipo de fonte de evento.

139

Page 145: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

Modelo de aplicativo sem servidor da AWS (AWS SAM) gera um AWS::Eventos::Regra recursos quandoeste tipo de evento está definido.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

EventBusName: String Input: String InputPath: String Pattern: EventPattern

Properties

EventBusName

O barramento de eventos que deve ser associado a essa regra. Se omitir esta propriedade, AWS SAMutiliza o autocarro de eventos predefinido.

Type: String.

Obrigatório: Não

Padrão: Barramento de eventos padrão

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventBusName propriedade de um AWS::Events::Rule recurso.

Input

Texto JSON válido passado para o destino. Se você usar essa propriedade, nada do próprio texto doevento é passado para o destino.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Inputpropriedade de um AWS::Events::Rule Target recurso.

InputPath

Quando não quiser passar todo o evento correspondente ao alvo, utilize o InputPath para descreverque parte do evento deve ser aprovado.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oInputPath propriedade de um AWS::Events::Rule Target recurso.

Pattern

Descreve quais eventos são roteados para o destino especificado. Para mais informações, consulteEventos e Padrões de Eventos em eventbridge no Guia do Utilizador da Amazon eventbridge.

Type: padrão de eventos

Obrigatório: Sim

140

Page 146: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventPattern propriedade de um AWS::Events::Rule recurso.

Exemplos

EventBridgeRule

Segue-se um exemplo de um EventBridgeRule tipo de fonte de evento.

YAML

EBRule: Type: EventBridgeRule Properties: Input: '{"Key": "Value"}' Pattern: detail: state: - terminated

Schedule

O objeto que descreve um Schedule tipo de fonte de evento.

AWS SAM gera um AWS::Eventos::Regra recursos quando este tipo de evento está definido.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Description: String Enabled: Boolean Input: String Name: String Schedule: String

Properties

Description

Uma descrição da regra.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oDescription propriedade de um AWS::Events::Rule recurso.

Enabled

Indica se a regra está habilitada.

Para desativar a regra, defina esta propriedade para False.

Type: booliano

141

Page 147: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Statepropriedade de um AWS::Events::Rule recurso.

Input

Texto JSON válido passado para o destino. Se você usar essa propriedade, nada do próprio texto doevento é passado para o destino.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Targetpropriedade de um AWS::Events::Rule Target recurso.

Name

O nome da regra. Se você não especificar um nome, o AWS CloudFormation gerará um ID físicoexclusivo e usará esse ID no nome da regra.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Namepropriedade de um AWS::Events::Rule recurso.

Schedule

A expressão de programação que determina quando e com que frequência a regra é executada. Paraobter mais informações, consulte Programar expressões para regras.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oScheduleExpression propriedade de um AWS::Events::Rule recurso.

Exemplos

evento do calendário cloudwatch

exemplo de evento de calendário Cloudwatch

YAML

CWSchedule: Type: Schedule Properties: Schedule: 'rate(1 minute)' Name: TestSchedule Description: test schedule Enabled: False

ApiO objeto que descreve um Api tipo de fonte de evento. Se um AWS::Serverless::Api (p. 29) o recurso édefinido, o caminho e os valores do método devem corresponder a uma operação na definição openapi daAPI.

142

Page 148: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

Auth: ApiStateMachineAuth (p. 144) Method: String Path: String RestApiId: String

Properties

Auth

A configuração de autorização para esta API, caminho e método.

Utilize esta propriedade para substituir as API DefaultAuthorizer para um caminho individual,quando não DefaultAuthorizer ou para substituir a predefinição ApiKeyRequired definição.

Type: apivodeproduto (p. 144)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Method

O método HTTP para o qual esta função é invocada.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Path

O caminho URI para o qual esta função é invocada. O valor deve começar com /.

Type: String.

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

RestApiId

O identificador de um RestApi recursos, que devem conter uma operação com o caminho e métodofornecidos. Normalmente, está definido para referenciar um AWS::Serverless::Api (p. 29) recursosdefinidos neste modelo.

Se não definir esta propriedade, AWS SAM cria uma predefinição AWS::Serverless::Api (p. 29)recurso utilizando um OpenApi documento que contém uma união de todos os caminhos e métodosdefinidos por Api eventos definidos neste modelo que não especificam RestApiId.

Esta propriedade não pode referenciar um AWS::Serverless::Api (p. 29) recursos definidos noutromodelo.

143

Page 149: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

ApiEvent

Segue-se um exemplo de um evento do Api digite.

YAML

Events: ApiEvent: Type: Api Properties: Path: /path Method: get RequestParameters: - method.request.header.Authorization

ApiStateMachineAuth

Configura a autorização ao nível do evento, para uma API, caminho e método específicos.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

ApiKeyRequired: Boolean AuthorizationScopes: List Authorizer: String ResourcePolicy: ResourcePolicyStatement (p. 145)

Properties

ApiKeyRequired

Requer uma chave API para esta API, caminho e método.

Type: booliano

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

AuthorizationScopes

Os âmbitos de autorização aplicam-se a esta API, caminho e método.

Os âmbitos que especificar irão substituir quaisquer âmbitos aplicados pelo DefaultAuthorizerpropriedade se o tiver especificado.

144

Page 150: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Authorizer

O Authorizer para uma máquina de estado específica.

Se especificou um autorizador global para a API e pretender tornar esta máquina pública, substituir oautorizador global por definição Authorizer para NONE.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

ResourcePolicy

Configure a política de recursos para esta API e caminho.

Type: declaração de resourcepolicy (p. 145)

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Exemplos

máquina-de-estadoMáquina

O exemplo seguinte especifica a autorização ao nível da máquina de estado.

YAML

Auth: ApiKeyRequired: true Authorizer: NONE

ResourcePolicyStatement

Configura a política de recursos de todos os métodos e caminhos de uma API.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

AwsAccountBlacklist: List AwsAccountWhitelist: List CustomStatements: List IpRangeBlacklist: List

145

Page 151: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

IpRangeWhitelist: List SourceVpcBlacklist: List SourceVpcWhitelist: List

Properties

AwsAccountBlacklist

As contas AWS bloqueiam.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.AwsAccountWhitelist

As contas AWS permitem.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.CustomStatements

Uma lista de declarações de política de recursos personalizados a aplicar a esta API.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.IpRangeBlacklist

Os endereços IP ou intervalos de endereços para bloquear.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.IpRangeWhitelist

Os endereços IP ou intervalos de endereços para permitir.

Type: Lista

146

Page 152: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.SourceVpcBlacklist

Os parâmetros de avaliação VPC ou VPC de origem para bloquear.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.SourceVpcWhitelist

Os parâmetros de avaliação VPC ou VPC de origem para permitir.

Type: Lista

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é exclusiva para AWS SAM e não tem umAWS CloudFormation equivalente.

Consulte também Consulte o AWS documentação para mais informações sobre esta propriedade.

Exemplos

SourceVpcBlacklist

O exemplo seguinte bloqueia dois endereços IP e um VPC fonte e permite uma conta AWS.

YAML

Auth: ResourcePolicy: CustomStatements: [{ "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/Prod/GET/pets", "Condition": { "IpAddress": { "aws:SourceIp": "1.2.3.4" } } }] IpRangeBlacklist: - "10.20.30.40" - "1.2.3.4" SourceVpcBlacklist: - "vpce-1a2b3c4d" AwsAccountWhitelist: - "111122223333"

147

Page 153: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorAWS::Serverless::StateMachine

CloudWatchEventO objeto que descreve um CloudWatchEvent tipo de fonte de evento.

Modelo de aplicativo sem servidor da AWS (AWS SAM) gera um AWS::Eventos::Regra recursos quandoeste tipo de evento está definido.

Nota importante: EventBridgeRule (p. 139) é o tipo de fonte de evento preferencial a utilizar, em vezde CloudWatchEvent. EventBridgeRule e CloudWatchEvent utilizar o mesmo serviço subjacente,API e AWS CloudFormation recursos. No entanto, AWS SAM adicionará suporte apenas para novasfuncionalidades a EventBridgeRule.

Sintaxe

Para declarar esta entidade no seu Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo, utilizea seguinte sintaxe.

YAML

EventBusName: String Input: String InputPath: String Pattern: EventPattern

Properties

EventBusName

O barramento de eventos que deve ser associado a essa regra. Se omitir esta propriedade, AWS SAMutiliza o autocarro de eventos predefinido.

Type: String.

Obrigatório: Não

Padrão: Barramento de eventos padrão

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventBusName propriedade de um AWS::Events::Rule recurso.

Input

Texto JSON válido passado para o destino. Se você usar essa propriedade, nada do próprio texto doevento é passado para o destino.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para o Inputpropriedade de um AWS::Events::Rule Target recurso.

InputPath

Quando não quiser passar todo o evento correspondente ao alvo, utilize o InputPath para descreverque parte do evento deve ser aprovado.

Type: String.

Obrigatório: Não

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oInputPath propriedade de um AWS::Events::Rule Target recurso.

148

Page 154: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Atributos de recursos

Pattern

Descreve quais eventos são roteados para o destino especificado. Para mais informações, consulteEventos e Padrões de Eventos em eventbridge no Guia do Utilizador da Amazon eventbridge

Type: padrão de eventos

Obrigatório: Sim

AWS CloudFormation compatibilidade: Esta propriedade é encaminhada directamente para oEventPattern propriedade de um AWS::Events::Rule recurso.

Exemplos

CloudWatchEvent

Segue-se um exemplo de um CloudWatchEvent tipo de fonte de evento.

YAML

CWEvent: Type: CloudWatchEvent Properties: Input: '{"Key": "Value"}' Pattern: detail: state: - terminated

Para informações de referência para todos os tipos de recursos e propriedades AWS suportados por AWSCloudFormation e AWS SAM, consulte Referência dos tipos de recursos e propriedades AWS no Guia dousuário do AWS CloudFormation.

Atributos de recursosAtributos de recursos são atributos que pode adicionar a um recurso para controlar comportamentos erelações adicionais. Para mais informações sobre atributos de recursos, consulte Referência do atributo derecurso no Guia do usuário do AWS CloudFormation.

AWS SAM recursos suportam um subconjunto de atributos de recursos que são suportados por AWSCloudFormation recursos. Para ver que AWS SAM recursos suportam os atributos de recursos, consulte atabela seguinte.

Tipo de recurso CreationPolicyDeletionPolicyDependsOnMetadadosUpdatePolicyUpdateReplacePolicy

AWS::Serverless::Api (p. 29) : não : não : sim : não : não : não

AWS::semservidor::aplicação (p. 58) : não : não : sim : não : não : não

AWS::Serverless::Function (p. 62): não : não : sim Sim (p. 172)

: não : não

AWS::semservidor::httpapi (p. 113) : não : não : sim : não : não : não

149

Page 155: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Funções intrínsecas

AWS::semservidor::layerversion (p. 128) : não : sim : sim Sim (p. 171)

: não : não

AWS::Serverless::SimpleTable (p. 132) : não : não : sim : não : não : não

Funções intrínsecasAs funções intrínsecas são funções integradas que lhe permitem atribuir valores a propriedades que sóestão disponíveis no runtime. Para mais informações sobre funções intrínsecas, consulte Referência dafunção intrínseca no Guia do usuário do AWS CloudFormation.

Gerado AWS CloudFormation RecursosQuando Modelo de aplicativo sem servidor da AWS (AWS SAM) processa o seu AWS SAM ficheiromodelo, gera AWS CloudFormation recursos. O conjunto de AWS CloudFormation recursos que AWSSAM A gera difere dependendo dos cenários que especificar. Um cenário é a combinação de AWSSAM recursos e propriedades especificados no seu ficheiro de modelo. Pode referenciar o gerado AWSCloudFormation recursos noutro local do seu ficheiro de modelo, semelhante à forma como os recursos dereferência que declara explicitamente no seu ficheiro de modelo.

Por exemplo, se especificar um AWS::Serverless::Function recursos no seu AWS SAM ficheiromodelo, AWS SAM gera sempre uma AWS::Lambda::Function recurso de base. Se especificartambém o AutoPublishAlias propriedade, AWS SAM gera também AWS::Lambda::Alias eAWS::Lambda::Version recursos.

Esta secção lista os cenários e o AWS CloudFormation recursos que geram e mostra como referenciar ogerado AWS CloudFormation recursos no seu AWS SAM ficheiro de modelo.

Tópicos• Referência gerada AWS CloudFormation Recursos (p. 150)• Gerado AWS CloudFormation Referência de recursos (p. 151)• AWS CloudFormation Recursos gerados quando AWS::sem servidor::Api especificado (p. 152)• AWS CloudFormation Recursos gerados quando AWS::sem servidor::função especificada (p. 153)• AWS CloudFormation Recursos gerados quando AWS::sem servidor::httpapi especificado (p. 155)

Referência gerada AWS CloudFormation RecursosTem duas opções para referência gerada AWS CloudFormation recursos dentro do seu AWS SAM ficheirode modelo, por LogicalId ou por propriedade de referência.

Referência gerada AWS CloudFormation Recursos por logicalidO AWS CloudFormation recursos que AWS SAM gera cada um deles LogicalId, que é um identificadoralfanumérico (A-Z, a-z, 0-9) que é único num ficheiro de modelo. AWS SAM utiliza o LogicalIds do AWSSAM recursos no seu ficheiro de modelo para construir o LogicalIds do AWS CloudFormation recursosque gera. Pode utilizar o LogicalId de uma gerada AWS CloudFormation recursos para aceder àspropriedades desse recurso no seu ficheiro modelo, tal como faria para um AWS CloudFormation recursosque declarou explicitamente. Para mais informações sobre LogicalIds em AWS CloudFormation e AWSSAM modelos, ver Recursos no Guia do usuário do AWS CloudFormation.

150

Page 156: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Gerado AWS CloudFormation Referência de recursos

Note

O LogicalIds de alguns recursos gerados incluem um valor hash único para evitar conflitosde nomes. O LogicalIds destes recursos são derivados quando a pilha é criada. Só poderecuperá-los depois de a pilha ter sido criada utilizando o Console de gerenciamento da AWS,AWS CLI, ou um dos AWS ks. Não recomendamos a referenciação destes recursos porLogicalId porque os valores hash podem mudar.

Referência gerada AWS CloudFormation Recursos porPropriedade de ReferênciaPara alguns recursos gerados, AWS SAM fornece uma propriedade de referência do AWS SAM recurso.Pode utilizar esta propriedade para referenciar uma gerada AWS CloudFormation recursos e as suaspropriedades no seu AWS SAM ficheiro de modelo.

Note

Nem todos gerados AWS CloudFormation recursos têm propriedades de referência. Para essesrecursos, tem de utilizar o LogicalId.

Gerado AWS CloudFormation Referência de recursosA tabela seguinte resume o AWS SAM recursos e propriedades que compõem os cenários que geramAWS CloudFormation recursos.

Os tópicos no AWS SAM Recursos a coluna fornece detalhes sobre os recursos base que são geradosquando especificar o AWS SAM recurso. Os tópicos no Cenários a coluna fornece detalhes sobre osrecursos adicionais gerados para esse cenário.

AWS SAM Recursos: Cenários:

AWS::Serverless::Api (p. 152)

• Propriedadedomainname está

especificada (p. 153)• A Propriedade

do Plano EstáEspecificada (p. 153)

AWS::Serverless::Function (p. 153)

• Propriedade dePseudónimo

Automático estáespecificada (p. 154)

• Propriedade daFunção É Not

Especificado (p. 154)• onsucesso (ou

falha) Propriedadeespecificada para

Amazon SNSEventos (p. 154)

• onsucesso (oufalha) Propriedadeespecificada para

Amazon SQSEventos (p. 155)

151

Page 157: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Api

AWS::sem servidor::httpapi (p. 155)

• Propriedadestagename está

especificada (p. 156)• Propriedade de

stagename NotEspecificado (p. 156)

• Propriedadedomainname está

especificada (p. 156)

Tópicos• AWS CloudFormation Recursos gerados quando AWS::sem servidor::Api especificado (p. 152)• AWS CloudFormation Recursos gerados quando AWS::sem servidor::função especificada (p. 153)• AWS CloudFormation Recursos gerados quando AWS::sem servidor::httpapi especificado (p. 155)

AWS CloudFormation Recursos gerados quandoAWS::sem servidor::Api especificadoQuando um AWS::Serverless::Api é especificado, Modelo de aplicativo sem servidor da AWS (AWSSAM) gera sempre o seguinte AWS CloudFormation recursos: um AWS::ApiGateway::RestApi, umAWS::ApiGateway::Stage, e um AWS::ApiGateway::Deployment.

AWS::ApiGateway::RestApi

LogicalId: <api‑LogicalId>

Propriedade de referência: N/A (tem de utilizar o LogicalId para referenciar isto AWSCloudFormation recurso)

AWS::ApiGateway::Stage

LogicalId: <api‑LogicalId><stage‑name>Stage

<stage‑name> é a cadeia que StageName propriedade está definida para. Por exemplo, se definirStageName para Gamma, o LogicalId é MyRestApiGammaStage.

Propriedade de referência: <api‑LogicalId>.StageAWS::ApiGateway::Deployment

LogicalId: <api‑LogicalId>Deployment<sha>

<sha> é um valor hash único que é gerado quando a pilha é criada. Por exemplo,MyRestApiDeployment926eeb5ff1.

Propriedade de referência: <api‑LogicalId>.Deployment

Além destes AWS CloudFormation recursos, quando AWS::Serverless::Api é especificado, AWSSAM gera adicionais AWS CloudFormation recursos para os seguintes cenários.

Cenários:• Propriedade domainname está especificada (p. 153)• A Propriedade do Plano Está Especificada (p. 153)

152

Page 158: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

Propriedade domainname está especificadaQuando o DomainName propriedade da Domain propriedade de um AWS::Serverless::Api éespecificado, AWS SAM gera o AWS::ApiGateway::DomainName AWS CloudFormation recurso.

AWS::ApiGateway::DomainName

LogicalId: ApiGatewayDomainName<sha>

<sha> é um valor hash único que é gerado quando a pilha é criada. Por exemplo, .ApiGatewayDomainName926eeb5ff1.

Propriedade de referência: <api‑LogicalId>.DomainName

A Propriedade do Plano Está EspecificadaQuando o UsagePlan propriedade da Auth propriedade de um AWS::Serverless::Api é especificado,AWS SAM gera o seguinte AWS CloudFormation recursos: AWS::ApiGateway::UsagePlan,AWS::ApiGateway::UsagePlanKey, e AWS::ApiGateway::ApiKey.

AWS::ApiGateway::UsagePlan

LogicalId: <api‑LogicalId>UsagePlan

Propriedade de referência: <api‑LogicalId>.UsagePlanAWS::ApiGateway::UsagePlanKey

LogicalId: <api‑LogicalId>UsagePlanKey

Propriedade de referência: <api‑LogicalId>.UsagePlanKeyAWS::ApiGateway::ApiKey

LogicalId: <api‑LogicalId>ApiKey

Propriedade de referência: <api‑LogicalId>.ApiKey

AWS CloudFormation Recursos gerados quandoAWS::sem servidor::função especificadaQuando um AWS::Serverless::Function é especificado, Modelo de aplicativo sem servidor da AWS(AWS SAM) cria o AWS::Lambda::Function AWS CloudFormation recurso.

AWS::Lambda::Function

LogicalId: <function‑LogicalId>

Propriedade de referência: N/A (tem de utilizar o LogicalId para referenciar isto AWSCloudFormation recurso)

Além disso AWS CloudFormation recursos, quando AWS::Serverless::Function é especificado, AWSSAM também gera AWS CloudFormation recursos para os seguintes cenários.

Cenários:

153

Page 159: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::Serverless::Function

• Propriedade de Pseudónimo Automático está especificada (p. 154)• Propriedade da Função É Not Especificado (p. 154)• onsucesso (ou falha) Propriedade especificada para Amazon SNS Eventos (p. 154)• onsucesso (ou falha) Propriedade especificada para Amazon SQS Eventos (p. 155)

Propriedade de Pseudónimo Automático está especificadaQuando o AutoPublishAlias propriedade de um AWS::Serverless::Function éespecificado, AWS SAM gera o seguinte AWS CloudFormation recursos: AWS::Lambda::Alias eAWS::Lambda::Version.

AWS::Lambda::Alias

LogicalId: <function‑LogicalId>Alias<alias‑name>

<alias‑name> é a cadeia que AutoPublishAlias está definido para. Por exemplo, se definirAutoPublishAlias para live, o LogicalId é: MyFunctionAliaslive.

Propriedade de referência: <function‑LogicalId>.AliasAWS::Lambda::Version

LogicalId: <function‑LogicalId>Version<sha>

<sha> é um valor hash único que é gerado quando a pilha é criada. Por exemplo, .MyFunctionVersão926eeb5ff1.

Propriedade de referência: <function‑LogicalId>.Version

Propriedade da Função É Not EspecificadoQuando o Role propriedade de um AWS::Serverless::Function é não especificados, AWS SAMgera o AWS::IAM::Role AWS CloudFormation recurso.

AWS::IAM::Role

LogicalId: <function‑LogicalId>Role

Propriedade de referência: N/A (tem de utilizar o LogicalId para referenciar isto AWSCloudFormation recurso)

onsucesso (ou falha) Propriedade especificada para AmazonSNS EventosQuando o OnSuccess (ou OnFailure) propriedade do DestinationConfig propriedade daEventInvokeConfig propriedade de um AWS::Serverless::Function é especificado e o tipo dedestino é SNS mas o destino ARN é não especificados, AWS SAM gera o seguinte AWS CloudFormationrecursos: AWS::Lambda::EventInvokeConfig e AWS::SNS::Topic.

AWS::Lambda::EventInvokeConfig

LogicalId: <function‑LogicalId>EventInvokeConfig

Propriedade de referência: N/A (tem de utilizar o LogicalId para referenciar isto AWSCloudFormation recurso)

154

Page 160: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS::sem servidor::httpapi

AWS::SNS::Topic

LogicalId: <function‑LogicalId>OnSuccessTopic (ou<function‑LogicalId>OnFailureTopic)

Propriedade de referência: <function‑LogicalId>.DestinationTopic

Se ambos OnSuccess e OnFailure são especificados para um Amazon SNS para distinguir entre osrecursos gerados, deve utilizar o LogicalId.

onsucesso (ou falha) Propriedade especificada para AmazonSQS EventosQuando o OnSuccess (ou OnFailure) propriedade do DestinationConfig propriedade daEventInvokeConfig propriedade de um AWS::Serverless::Function é especificado e o tipo dedestino é SQS mas o destino ARN é não especificados, AWS SAM gera o seguinte AWS CloudFormationrecursos: AWS::Lambda::EventInvokeConfig e AWS::SQS::Queue.

AWS::Lambda::EventInvokeConfig

LogicalId: <function‑LogicalId>EventInvokeConfig

Propriedade de referência: N/A (tem de utilizar o LogicalId para referenciar isto AWSCloudFormation recurso)

AWS::SQS::Queue

LogicalId: <function‑LogicalId>OnSuccessQueue (ou<function‑LogicalId>OnFailureQueue)

Propriedade de referência: <function‑LogicalId>.DestinationQueue

Se ambos OnSuccess e OnFailure são especificados para um Amazon SQS para distinguir entre osrecursos gerados, deve utilizar o LogicalId.

AWS CloudFormation Recursos gerados quandoAWS::sem servidor::httpapi especificadoQuando um AWS::Serverless::HttpApi é especificado, Modelo de aplicativo sem servidor da AWS(AWS SAM) gera o AWS::ApiGatewayV2::Api AWS CloudFormation recurso.

AWS::ApiGatewayV2::Api

LogicalId: <httpapi‑LogicalId>

Propriedade de referência: N/A (tem de utilizar o LogicalId para referenciar isto AWSCloudFormation recurso)

Além disso AWS CloudFormation recursos, quando AWS::Serverless::HttpApi é especificado, AWSSAM também gera AWS CloudFormation recursos para os seguintes cenários:

Cenários:• Propriedade stagename está especificada (p. 156)• Propriedade de stagename Not Especificado (p. 156)• Propriedade domainname está especificada (p. 156)

155

Page 161: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

API Gateway Extensões

Propriedade stagename está especificadaQuando o StageName propriedade de um AWS::Serverless::HttpApi é especificado, AWS SAM gerao AWS::ApiGatewayV2::Stage AWS CloudFormation recurso.

AWS::ApiGatewayV2::Stage

LogicalId: <httpapi‑LogicalId><stage‑name>Stage

<stage‑name> é a cadeia que StageName propriedade está definida para. Por exemplo, se definirStageName para Gamma, o LogicalId é: MyHttpApiGammaEstágio

Propriedade de referência: <httpapi‑LogicalId>.Stage

Propriedade de stagename Not EspecificadoQuando o StageName propriedade de um AWS::Serverless::HttpApi é não especificados, AWSSAM gera o AWS::ApiGatewayV2::Stage AWS CloudFormation recurso.

AWS::ApiGatewayV2::Stage

LogicalId: <httpapi‑LogicalId>ApiGatewayDefaultStage

Propriedade de referência: <httpapi‑LogicalId>.Stage

Propriedade domainname está especificadaQuando o DomainName propriedade da Domain propriedade de um AWS::Serverless::HttpApi éespecificado, AWS SAM gera o AWS::ApiGatewayV2::DomainName AWS CloudFormation recurso.

AWS::ApiGatewayV2::DomainName

LogicalId: ApiGatewayDomainNameV2<sha>

<sha> é um valor hash único que é gerado quando a pilha é criada. Por exemplo:ApiGatewayDomainNameV2926eeb5ff1.

Propriedade de referência: <httpapi‑LogicalId>.DomainName

API Gateway ExtensõesAPI Gateway extensões são extensões à especificação openapi que suportam a autorização específica daAWS e API Gateway-integrações API específicas. Para mais informações sobre API Gateway extensões,consulte API Gateway Extensões para openapi.

AWS SAM suporta um subconjunto de API Gateway extensões. Para ver que extensões do Gateway APIsão suportadas pelo AWS SAM, consulte a tabela seguinte.

API Gateway Extensão Compatível como ? AWS SAM

Objeto x-amazon-apigateway-any-method : sim

Propriedade x-amazon-apigateway-api-key-source : não

156

Page 162: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

API Gateway Extensões

Objeto x-amazon-apigateway-auth : sim

Objeto x-amazon-apigateway-authorizer : sim

Propriedade x-amazon-apigateway-authtype : sim

Propriedade x-amazon-apigateway-binary-media-types : sim

Objeto x-amazon-apigateway-documentation : não

Objeto x-amazon-apigateway-endpoint-configuration : não

Objeto x-amazon-apigateway-gateway-responses : sim

Objeto x-amazon-apigateway-gateway-responses.gatewayResponse : sim

Objeto x-amazon-apigateway-gateway-responses.responseParameters : sim

Objeto x-amazon-apigateway-gateway-responses.responseTemplates : sim

Objeto x-amazon-apigateway-integration : sim

Objeto x-amazon-apigateway-integration.requestTemplates : sim

Objeto x-amazon-apigateway-integration.requestParameters : não

Objeto x-amazon-apigateway-integration.responses : sim

Objeto x-amazon-apigateway-integration.response : sim

Objeto x-amazon-apigateway-integration.responseTemplates : sim

Objeto x-amazon-apigateway-integration.responseParameters : sim

Propriedade x-amazon-apigateway-request-validator : não

Objeto x-amazon-apigateway-request-validators : não

Objeto x-amazon-apigateway-request-validators.requestValidator : não

157

Page 163: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

A validar AWS SAM Ficheiros de modelos

Autoria de aplicações sem servidorQuando aumentar uma aplicação sem servidor utilizando AWS SAM, construindo um AWS SAM modelopara declarar e configurar os componentes da sua aplicação.

Esta secção contém tópicos sobre como validar o seu AWS SAM e como construir a sua candidaturacom dependências. Contém também tópicos sobre como utilizar AWS SAM para determinados casos deutilização, como trabalhar com Lambda camadas, utilização de aplicações em rede e controlo do acesso aAPI Gateway API.

Tópicos• A validar AWS SAM Ficheiros de modelos (p. 158)• Como trabalhar com camadas (p. 158)• Utilização de aplicações com falhas (p. 160)• Controlo do Acesso a API Gateway API (p. 162)• Orquestrar recursos AWS com AWS Step Functions (p. 168)

A validar AWS SAM Ficheiros de modelosValide os seus modelos com sam validate (p. 219). Atualmente, este comando valida que omodelo fornecido é JSON/YLMA válido. Como com a maioria AWS SAM Comandos de CEM, procura umtemplate.[yaml|yml] no seu diretório de trabalho actual por predefinição. Pode especificar um ficheiro/local de modelo diferente com o -t ou --template opção.

Exemplo:

sam validate<path-to-file>/template.yml is a valid SAM Template

Note

O sam validate requer que as credenciais AWS sejam configuradas. Para obter maisinformações, consulte Arquivos de configuração e credenciais.

Como trabalhar com camadasO AWS SAM O EMC suporta aplicações que incluem camadas. Para mais informações sobre camadas,consulte Lambda Camadas.

O seguinte é um exemplo AWS SAM modelo com um Lambda função que inclui uma camada:

ServerlessFunction: Type: AWS::Serverless::Function Properties: CodeUri: . Handler: my_handler Runtime: Python3.7 Layers: - <LayerVersion ARN>

158

Page 164: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Como trabalhar com camadas

Para mais informações sobre como incluir camadas na sua aplicação, consulte AWS::sem servidor::funçãono AWS SAM repositório de github, ou AWS::Lambda::Função no Guia do usuário do AWSCloudFormation.

Quando invocar a sua função utilizando um dos sub-comandos CLI locais, o pacote de camadas da suafunção é transferido e colocado em cache no seu anfitrião local. Consulte o gráfico seguinte para aslocalizações predefinidas do diretório de cache. Depois de o pacote estar em cache, o AWS SAM O ROCreveste as camadas para uma imagem do acoplador utilizada para invocar a sua função. O AWS SAM OCLI gera os nomes das imagens que constrói, bem como as versões layerversions que são mantidas nacache. Pode encontrar mais detalhes sobre o esquema nas secções seguintes.

Para inspeccionar as camadas sobrepostas, execute o seguinte comando para iniciar uma sessão de bashna imagem que pretende inspecionar:

docker run -it --entrypoint=/bin/bash samcli/lambda:<Tag following the schema outlined in Docker Image Tag Schema> -i

Esquema do nome do diretório de cache da camada

Atendendo a uma pessoa que está definida no seu modelo, o AWS SAM O BCE extrai o nome e a versãodo ARN. Cria um diretório para colocar o conteúdo da camada no nome LayerName-Version-<first10 characters of sha256 of ARN>.

Exemplo:

ARN = arn:aws:lambda:us-west-2:111111111111:layer:myLayer:1Directory name = myLayer-1-926eeb5ff1

Esquema de etiquetas de imagens do acoplador

Para calcular a hash de camadas únicas, combine todos os nomes de layers únicos com um delimitador de'-', pegue na hash SHA256 e, em seguida, tome os primeiros 10 caracteres.

Exemplo:

ServerlessFunction: Type: AWS::Serverless::Function Properties: CodeUri: . Handler: my_handler Runtime: Python3.7 Layers: - arn:aws:lambda:us-west-2:111111111111:layer:myLayer:1 - arn:aws:lambda:us-west-2:111111111111:layer:mySecondLayer:1

Os nomes únicos são calculados do mesmo modo que o esquema de nome do directório de cache dacamada:

arn:aws:lambda:us-west-2:111111111111:layer:myLayer:1 = myLayer-1-926eeb5ff1arn:aws:lambda:us-west-2:111111111111:layer:mySecondLayer:1 = mySecondLayer-1-6bc1022bdf

Para calcular a hash de camadas únicas, combine todos os nomes de layers únicos com um delimitador de'-', pegue na cardinal256 hash e, em seguida, tome os primeiros 25 caracteres:

myLayer-1-926eeb5ff1-mySecondLayer-1-6bc1022bdf = 2dd7ac5ffb30d515926aef

Em seguida, combine este valor com o tempo de execução da função, com um delimitador de '-':

159

Page 165: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Utilização de aplicações com falhas

python3.7-2dd7ac5ffb30d515926aefffd

Localizações predefinidas do diretório de cache

SO : Location

Windows 7 C:\Users\<user>\AppData\Roaming\AWS SAM

Windows 8 C:\Users\<user>\AppData\Roaming\AWS SAM

Windows 10 C:\Users\<user>\AppData\Roaming\AWS SAM

macOS ~/.aws-sam/layers-pkg

Unix ~/.aws-sam/layers-pkg

Utilização de aplicações com falhasUma aplicação sem servidor pode incluir um ou mais aplicações aglomeradas. Pode implementar umaaplicação em rede como um artefacto autónomo ou como um componente de uma aplicação maior.

À medida que as arquitecturas serinosas crescem, os padrões comuns surgem em que os mesmoscomponentes são definidos em múltiplos modelos de aplicações. Pode agora separar os padrões comunscomo aplicações dedicadas e, em seguida, ná-los como parte de modelos de aplicações novos ouexistentes. Com aplicações aglomeradas, pode ficar mais focado na lógica empresarial que é única para asua aplicação.

Para definir uma aplicação aninhada na sua aplicação sem servidor, utilize o AWS::sem servidor::aplicaçãotipo de recurso.

Pode definir as aplicações em separado das duas fontes seguintes:

• Um AWS Serverless Application Repository aplicação – Pode definir aplicações em mosaico utilizandoaplicações disponíveis para a sua conta no AWS Serverless Application Repository. Estes podemser privado aplicações na sua conta, aplicações que são partilhados em privado com a sua contaou aplicações publicamente partilhado no AWS Serverless Application Repository. Para obtermais informações sobre os diferentes níveis de permissões de expansão, consulte Permissões deimplementação da aplicação e Aplicações de publicação no Guia do desenvolvedor do AWS ServerlessApplication Repository.

• Um aplicação local – É possível definir aplicações em mosaico utilizando aplicações armazenadas noseu sistema de ficheiros local.

Consulte as secções seguintes para obter detalhes sobre como utilizar AWS SAM para definir ambos estestipos de aplicações em simultâneo na sua aplicação sem servidor.

Note

O número máximo de aplicações que podem ser agrupadas numa aplicação sem servidor é 200.O número máximo de parâmetros que uma aplicação em rede pode ter é de 60.

Definir uma aplicação em mosaico do AWS ServerlessApplication RepositoryPode definir aplicações em mosaico utilizando aplicações disponíveis no AWS Serverless ApplicationRepository. Também pode armazenar e distribuir aplicações que contenham aplicações em rede utilizando

160

Page 166: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorDefinir uma aplicação em mosaico

a partir do sistema de ficheiros localo AWS Serverless Application Repository. Para rever os detalhes de uma aplicação agrupada no AWSServerless Application Repository, pode utilizar o AWS SDK, o AWS CLI, ou o Lambda consola.

Para definir uma aplicação alojada no AWS Serverless Application Repository nas suas aplicações semservidor AWS SAM modelo, utilize o Copiar como Recurso SAM na página de detalhes de cada AWSServerless Application Repository aplicação. Para isso, siga estas etapas:

1. Certifique-se de que iniciou sessão no Console de gerenciamento da AWS.2. Encontre a aplicação que pretende ninho no AWS Serverless Application Repository utilizando os

passos no Navegação, pesquisa e implementação de aplicações secção do Guia do desenvolvedor doAWS Serverless Application Repository.

3. Escolha o Copiar como Recurso SAM botão. A secção do modelo SAM para a aplicação que está avisualizar está agora na sua área de transferência.

4. Cole a secção do modelo SAM no Resources: secção do ficheiro modelo SAM para a aplicação quepretende ninho nesta aplicação.

Segue-se um exemplo de secção de modelo de SAM para uma aplicação agrupada que está alojada noAWS Serverless Application Repository:

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

Resources: applicationaliasname: Type: AWS::Serverless::Application Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-1:123456789012:applications/application-alias-name SemanticVersion: 1.0.0 Parameters: # Optional parameter that can have default value overridden ‑ ParameterName1: 15 ‑ Uncomment to override default value # Required parameter that needs value to be provided ParameterName2: YOUR_VALUE

Se não existirem definições de parâmetros necessárias, pode omitir o Parameters: secção do modelo.Important

Aplicações que contêm aplicações aninhadas alojadas no AWS Serverless Application Repositoryherda as restrições de partilha das aplicações anenciadas.Por exemplo, suponha que um aplicativo seja compartilhado publicamente, mas contém umaplicativo aninhado que é compartilhado apenas de forma privada com a conta da AWS quecriou o aplicativo pai. Neste caso, se a sua conta AWS não tiver permissão para implementara aplicação em rede, não é possível implementar a aplicação principal. Para mais informaçõessobre permissões para implementar aplicações, consulte Permissões de implementação daaplicação e Aplicações de publicação no Guia do desenvolvedor do AWS Serverless ApplicationRepository.

Definir uma aplicação em mosaico a partir do sistemade ficheiros localÉ possível definir aplicações em mosaico utilizando aplicações armazenadas no seu sistema de ficheiroslocal. Você faz isto especificando o caminho para o AWS SAM ficheiro de modelo guardado no seusistema de ficheiros local.

Segue-se um exemplo de secção do modelo SAM para uma aplicação local agrupada:

161

Page 167: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Implementação de aplicações com falhas

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

Resources: applicationaliasname: Type: AWS::Serverless::Application Properties: Location: ../my-other-app/template.yaml Parameters: # Optional parameter that can have default value overridden ‑ ParameterName1: 15 ‑ Uncomment to override default value # Required parameter that needs value to be provided ParameterName2: YOUR_VALUE

Se não existirem definições de parâmetros, pode omitir o Parameters: secção do modelo.

Implementação de aplicações com falhasPode expandir a sua aplicação em rede utilizando o AWS SAM Comando VID sam deploy. Para maisdetalhes, consulte Implementar aplicações sem servidor (p. 187).

Note

Quando implementa uma aplicação que contenha aplicações em rede, tem dereconhecer que. Faz isto ao passar a FUNCIONALIDADE_AUTO_EXPANDIR para ocreaaltyoudformationchangeset APIou utilizar o aws serverlessrepo create-cloud-formation-change-set AWS CLI comando.Para obter mais informações sobre como reconhecer aplicações em rede, consulte Reconheceras funções de RAM, políticas de recursos e aplicações em simultâneo ao implementar aplicaçõesno Guia do desenvolvedor do AWS Serverless Application Repository.

Controlo do Acesso a API Gateway APIPode usar AWS SAM para controlar quem pode aceder ao API Gateway fornecendo autorização no seuAWS SAM modelo.

AWS SAM suporta vários mecanismos para controlar o acesso ao seu API Gateway API:

• Lambda autorizadores. Um Lambda autorizador (anteriormente conhecido como autorizadorpersonalizado) é um Lambda função que fornece para controlar o acesso à sua API. Quando a suaAPI é chamada, isto Lambda é invocada com um contexto de pedido ou um token de autorizaçãofornecido pela aplicação do cliente. O Lambda função devolve um documento de política que especificaas operações que o chamador está autorizado a realizar, se houver. Para mais informações sobreLambda autorizadores, ver Utilização API Gateway Lambda Autorizadores no Guia do desenvolvedor doAPI Gateway. Para exemplos de Lambda autorizadores, ver Exemplo: Definição Lambda Autorizadoresde tokens (p. 163) e Exemplo: Definição Lambda Solicitar autorizadores (p. 164) mais tarde nestetópico.

 • Amazon Cognito grupos de utilizadores. Amazon Cognito grupos de utilizadores são diretórios de

utilizador em Amazon Cognito. Um cliente da sua API tem primeiro de assinar um utilizador na pool doutilizador e obter uma identidade ou um token de acesso para o utilizador. Depois, a sua API é chamadacom um dos tokens devolvidos. A chamada API é efetuada apenas se o token necessário for válido.Para mais informações sobre Amazon Cognito grupos de utilizadores, ver Controlar o acesso a RESTAPI Utilizando Grupos de usuários do Amazon Cognito como Autorizador no Guia do desenvolvedordo API Gateway. Para um exemplo de Amazon Cognito grupos de utilizadores, ver Exemplo: DefiniçãoAmazon Cognito Agrupamentos de utilizadores (p. 165) mais tarde neste tópico.

162

Page 168: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Escolher um mecanismo para controlar o acesso

 • Permissões do IAM Pode controlar quem pode invocar a sua API utilizando IAM permissões. Os

utilizadores que ligam à sua API têm de ser autenticados com IAM credenciais. As chamadas para a suaAPI só são bem sucedidas se houver uma IAM política anexada ao IAM utilizador que representa o autorda API, um IAM grupo que contém o utilizador ou um IAM função que é assumida pelo utilizador. Paramais informações sobre IAM permissões, consulte Controlar o Acesso a uma API com IAM Permissõesno Guia do desenvolvedor do API Gateway. Para um exemplo de IAM permissões, consulte Exemplo:Definição IAM Permissões (p. 166) mais tarde neste tópico.

 • Chaves API. Chaves de API são valores de strings alfanuméricas distribuídas para clientes de

desenvolvedores de aplicativos para conceder acesso à API. Para mais informações sobre as chavesAPI, consulte Criar e utilizar planos de utilização com chaves API no Guia do desenvolvedor do APIGateway. Para um exemplo de chaves API, consulte Exemplo: Definir chaves API (p. 166) mais tardeneste tópico.

 • Políticas de recursos. As políticas de recursos são documentos da política JSON que pode anexar a um

API Gateway API para controlar se um responsável especificado (normalmente IAM utilizador ou função)pode invocar a API. Para mais informações sobre políticas de recursos, consulte Controlar o Acesso auma API com Amazon API Gateway Políticas de recursos no Guia do desenvolvedor do API Gateway.Para um exemplo de políticas de recursos, consulte Exemplo: Definir políticas de recursos (p. 167)mais tarde neste tópico.

Além disso, pode utilizar AWS SAM para personalizar o conteúdo de alguns API Gateway respostas deerros. Para mais informações sobre a personalização API Gateway respostas de erros, ver Configurarrespostas de gateway para personalizar respostas de erro. Para um exemplo de respostas personalizadas,consulte Exemplo: Definir respostas personalizadas (p. 168) mais tarde neste tópico.

Escolher um mecanismo para controlar o acessoO mecanismo que escolhe para controlar o acesso ao seu API Gateway as API dependem de algunsfatores. Por exemplo, se tiver um projecto de campo em greenfield que ainda não tenha autorização oucontrolo de acesso configurado, então Amazon Cognito grupos de utilizadores podem ser a sua melhoropção. Isto deve-se ao facto de ter configurado grupos de utilizadores, também configura automaticamentea autenticação e o controlo de acesso.

No entanto, se a sua aplicação já tiver uma configuração de autenticação, utilize Lambda os autorizadorespodem ser a melhor opção. Isto porque pode ligar para o serviço de autenticação existente e devolver umdocumento de apólice com base na resposta. Além disso, se a sua aplicação necessitar de autenticaçãopersonalizada ou lógica de controlo de acesso que os grupos de utilizadores não suportam, então Lambdaos autorizadores podem ser a sua melhor opção.

Depois de decidir qual o mecanismo a utilizar, consulte a secção correspondente neste tópico para vercomo utilizar AWS SAM para configurar a sua aplicação para utilizar esse mecanismo.

Exemplo: Definição Lambda Autorizadores de tokensPode controlar o acesso às suas API definindo um Lambda Autorizador do token dentro do seu AWS SAMmodelo. Para o fazer, utiliza o Objeto de autorização API tipo de dados.

O seguinte é um exemplo AWS SAM secção de modelos para um Lambda Autorizador do token:

Resources: MyApi:

163

Page 169: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Exemplo: Definição Lambda Solicitar autorizadores

Type: AWS::Serverless::Api Properties: StageName: Prod Auth: DefaultAuthorizer: MyLambdaTokenAuthorizer Authorizers: MyLambdaTokenAuthorizer: FunctionArn: !GetAtt MyAuthFunction.Arn

MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: index.handler Runtime: nodejs12.x Events: GetRoot: Type: Api Properties: RestApiId: !Ref MyApi Path: / Method: get

MyAuthFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: authorizer.handler Runtime: nodejs12.x

Para mais informações sobre API Gateway Lambda autorizadores, ver Utilização API Gateway LambdaAutorizadores no Guia do desenvolvedor do API Gateway.

Para uma aplicação de amostra completa que inclui um Lambda Autorizador de tokens, ver Exemplo APIGateway + Lambda TOKEN Autorier.

Exemplo: Definição Lambda Solicitar autorizadoresPode controlar o acesso às suas API definindo um Lambda Solicitar autorização no seu AWS SAMmodelo. Para o fazer, utiliza o Objeto de autorização API tipo de dados.

O seguinte é um exemplo AWS SAM secção de modelos para um Lambda Pedido de autorização:

Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: Prod Auth: DefaultAuthorizer: MyLambdaRequestAuthorizer Authorizers: MyLambdaRequestAuthorizer: FunctionPayloadType: REQUEST FunctionArn: !GetAtt MyAuthFunction.Arn Identity: QueryStrings: - auth

MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: index.handler

164

Page 170: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Exemplo: Definição Amazon CognitoAgrupamentos de utilizadores

Runtime: nodejs12.x Events: GetRoot: Type: Api Properties: RestApiId: !Ref MyApi Path: / Method: get

MyAuthFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: authorizer.handler Runtime: nodejs12.x

Para mais informações sobre API Gateway Lambda autorizadores, ver Utilização API Gateway LambdaAutorizadores no Guia do desenvolvedor do API Gateway.

Para uma aplicação de amostra completa que inclui um Lambda Solicitar autorizador, ver Exemplo deautorização API + Pedido de autorização de pedido LAMBDA.

Exemplo: Definição Amazon Cognito Agrupamentosde utilizadoresPode controlar o acesso às suas API definindo Amazon Cognito grupos de utilizadores no seu AWS SAMmodelo. Para o fazer, utiliza o Objeto de autorização API tipo de dados.

O seguinte é um exemplo AWS SAM secção de modelo para uma pool de utilizadores:

Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: Prod Cors: "'*'" Auth: DefaultAuthorizer: MyCognitoAuthorizer Authorizers: MyCognitoAuthorizer: UserPoolArn: !GetAtt MyCognitoUserPool.Arn

MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: ./src Handler: lambda.handler Runtime: nodejs12.x Events: Root: Type: Api Properties: RestApiId: !Ref MyApi Path: / Method: GET

MyCognitoUserPool: Type: AWS::Cognito::UserPool Properties: UserPoolName: !Ref CognitoUserPoolName Policies: PasswordPolicy:

165

Page 171: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Exemplo: Definição IAM Permissões

MinimumLength: 8 UsernameAttributes: - email Schema: - AttributeDataType: String Name: email Required: false MyCognitoUserPoolClient: Type: AWS::Cognito::UserPoolClient Properties: UserPoolId: !Ref MyCognitoUserPool ClientName: !Ref CognitoUserPoolClientName GenerateSecret: false

Para mais informações sobre Amazon Cognito grupos de utilizadores, ver Controlar o acesso a uma APIREST utilizando Grupos de usuários do Amazon Cognito como Autorizador no Guia do desenvolvedor doAPI Gateway.

Para uma aplicação de amostra completa que inclua uma pool de utilizadores como autorizadora, consulteExemplo da API Gateway + Cognito Auth + Cognito Alojado.

Exemplo: Definição IAM PermissõesPode controlar o acesso às suas API definindo IAM permissões dentro do seu AWS SAM modelo. Para ofazer, utiliza o Objeto de autorização API tipo de dados.

O seguinte é um exemplo AWS SAM secção de modelos para IAM permissões:

Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: Prod Auth: DefaultAuthorizer: AWS_IAM

MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: . Handler: index.handler Runtime: nodejs12.x Events: GetRoot: Type: Api Properties: RestApiId: !Ref MyApi Path: / Method: get

Para mais informações sobre IAM permissões, consulte Controlar o acesso a uma API utilizando IAMPermissões no Guia do desenvolvedor do API Gateway.

Para uma aplicação de amostra completa que inclua uma pool de utilizadores como autorizadora, consulteGateway API + IAM Exemplo de permissões.

Exemplo: Definir chaves APIPode controlar o acesso às suas API, exigindo chaves API dentro do seu AWS SAM modelo. Para o fazer,utiliza o Objeto de autorização API tipo de dados.

166

Page 172: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Exemplo: Definir políticas de recursos

O seguinte é um exemplo AWS SAM secção de modelos para chaves API:

Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: Prod Auth: ApiKeyRequired: true # sets for all methods

MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: . Handler: index.handler Runtime: nodejs12.x Events: ApiKey: Type: Api Properties: RestApiId: !Ref MyApi Path: / Method: get Auth: ApiKeyRequired: true

Para mais informações sobre as chaves API, consulte Criar e utilizar planos de utilização com chaves APIno Guia do desenvolvedor do API Gateway.

Exemplo: Definir políticas de recursosPode controlar o acesso às suas API ao anexar uma política de recursos no seu AWS SAM modelo. Para ofazer, utiliza o Objeto de autorização API tipo de dados.

O seguinte é um exemplo AWS SAM secção de modelos para políticas de recursos:

Resources: ExplicitApi: Type: AWS::Serverless::Api Properties: StageName: Prod EndpointConfiguration: PRIVATE Auth: ResourcePolicy: CustomStatements: { Effect: 'Allow', Action: 'execute-api:Invoke', Resource: ['execute-api:/*/*/*'], Principal: '*' } MinimalFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: s3://sam-demo-bucket/hello.zip Handler: hello.handler Runtime: python2.7 Events: AddItem: Type: Api Properties: RestApiId: Ref: ExplicitApi

167

Page 173: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Exemplo: Definir respostas personalizadas

Path: /add Method: post

Para mais informações sobre políticas de recursos, consulte Controlar o Acesso a uma API com AmazonAPI Gateway Políticas de recursos no Guia do desenvolvedor do API Gateway.

Exemplo: Definir respostas personalizadasPode personalizar alguns API Gateway respostas de erros definindo cabeçalhos de resposta dentro do seuAWS SAM modelo. Para o fazer, utiliza o Objeto de resposta do gateway tipo de dados.

O seguinte é um exemplo AWS SAM secção de modelos para API Gateway respostas:

Resources: MyApi: Type: AWS::Serverless::Api Properties: StageName: Prod GatewayResponses: DEFAULT_4xx: ResponseParameters: Headers: Access-Control-Expose-Headers: "'WWW-Authenticate'" Access-Control-Allow-Origin: "'*'"

GetFunction: Type: AWS::Serverless::Function Properties: Handler: index.get Runtime: nodejs12.x InlineCode: module.exports = async () => throw new Error('Check out the response headers!') Events: GetResource: Type: Api Properties: Path: /error Method: get RestApiId: !Ref MyApi

Para mais informações sobre a personalização API Gateway mensagens, ver Configurar respostas degateway para personalizar respostas de erro no Guia do desenvolvedor do API Gateway.

Para uma aplicação de amostra completa que inclua uma resposta de erro personalizada, consulteExemplo API Gateway + gatewayresponse.

Orquestrar recursos AWS com AWS Step FunctionsPode usar AWS Step Functions para orquestrar AWS Lambda e outros recursos AWS para formar fluxosde trabalho complexos e robustos.

Note

Para gerir AWS SAM modelos que contêm Step Functions máquinas, tem de utilizar a versão0.52.0 ou posterior do AWS SAM CLI. Para verificar qual a versão que tem, execute o comandosam --version.

O Step Functions se baseia nos conceitos de tarefas e máquinas de estado. Você define uma máquinade estado usando a Amazon States Language baseada em JSON. O Step Functions consola apresenta

168

Page 174: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Example

uma vista gráfica da estrutura da sua máquina estatal para que possa verificar visualmente a lógica da suamáquina e as execuções do monitor.

Com Step Functions apoio em Modelo de aplicativo sem servidor da AWS (AWS SAM), pode fazer oseguinte:

• Defina as máquinas de estado, directamente dentro de um AWS SAM modelo ou num ficheiro separado• Criar funções de execução de máquinas estatais através de AWS SAM modelos de política, políticas

inline ou políticas geridas• Execuções da máquina do estado do gatilho com API Gateway ou Amazon EventBridge eventos, num

horário dentro de AWS SAM ou ligando directamente para as API• Utilização disponível AWS SAM Modelos de política para o Step Functions padrões de desenvolvimento.

ExampleO exemplo seguinte de excertos de um AWS SAM ficheiro de modelo define um Step Functions máquinade estado num ficheiro de definição. Note que o my_state_machine.asl.json o ficheiro tem de serescrito em Idioma dos Estados Unidos da América.

AWSTemplateFormatVersion: "2010-09-09"Transform: AWS::Serverless-2016-10-31Description: Sample SAM template with Step Functions State Machine

Resources: MyStateMachine: Type: AWS::Serverless::StateMachine Properties: DefinitionUri: statemachine/my_state_machine.asl.json ...

Para transferir uma amostra AWS SAM que inclui uma Step Functions máquina estado, consulte Criaruma Step Functions Estado da máquina utilizando AWS SAM no Guia do desenvolvedor do AWS StepFunctions.

Mais informaçõesPara saber mais sobre Step Functions e usando-o com AWS SAM, consulte o seguinte:

• Como o AWS Step Functions funciona.• AWS Step Functions e Modelo de aplicativo sem servidor da AWS• Tutorial Criar uma máquina de estado do Step Functions usando o AWS SAM• AWS SAM Especificação: AWS::Serverless::StateMachine (p. 135)

169

Page 175: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Aplicações de construção

Construir aplicações sem servidorConstruir a sua aplicação sem servidor implica tomar o seu AWS SAM modelo de modelo, código deaplicação e quaisquer ficheiros e dependências específicas de idioma aplicáveis, e colocar todos osartefactos no formato e localização adequados para os passos de subestagentes no seu fluxo de trabalho.

Por exemplo, pode querer testar a sua candidatura localmente ou pode querer implementar a suaaplicação utilizando o AWS SAM CLI. Ambas estas actividades utilizam os artefactos da sua candidaturacomo entradas.

Esta secção mostra como utilizar o construir sam (p. 205) comando para construir aplicações semservidor usando AWS SAM. Tem a opção de construir todas as funções e camadas da sua aplicação oucomponentes individuais da sua aplicação, como uma função ou camada específica.

Tópicos• Aplicações de construção (p. 170)• Camadas de construção (p. 171)• Construir tempos de runtimes personalizados (p. 172)

Aplicações de construçãoPara criar a sua aplicação sem servidor, utilize o construir sam (p. 205) comando.

sam build também reúne a construção de artefactos das dependências da sua aplicação e coloca-asno formato e localização adequados para os passos subsequentes no seu fluxo de trabalho. Especificadependências num ficheiro manifesto que inclua na sua aplicação (como requirements.txt parafunções Python, ou package.json para funções Nodejs) ou utilizando o Layers propriedade de umrecurso de função. O Layers propriedade contém uma lista de Lambda recursos de camadas que afunção depende de.

Se o seu AWS Lambda função depende de pacotes que tenham programas compilados de forma nativa,utilize o --use-container bandeira. O --use-container o marcador distribui localmente as suasfunções num contentor do acoplador que funciona como um Lambda para que estejam no formato corretoquando os coloca na nuvem AWS.

ExamplesO seguinte sam build comandos criam aplicações.

# Build all functions and layers, and their dependenciessam build

# Run the build process inside a Docker container that functions like a Lambda environmentsam build --use-container

# Build and run your functions locallysam build && sam local invoke

# For more options

170

Page 176: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Camadas de construção

sam build --help

Camadas de construçãoPara criar camadas que tenha declarado no seu Modelo de aplicativo sem servidor da AWS (AWS SAM)ficheiro de modelo, incluir um Metadata secção de atributos de recursos com um BuildMethod entrada.Valores válidos para BuildMethod são identificadores para um AWS Lambda tempo de execução, oumakefile.

Se especificar makefile, forneça o ficheiro de preenchimento personalizado, onde declara um objetivode construção do formulário build-layer-logical-id que contém os comandos de construção paraa sua camada. O seu ficheiro é responsável por compilar a camada, se necessário, e copiar os artefactospara a localização adequada necessária para os passos subsequentes no seu fluxo de trabalho.

O seguinte é um exemplo Metadata secção de atributos de recursos.

Metadata: BuildMethod: python3.6

Note

Se não incluir o Metadata secção de atributos de recursos, AWS SAM não constrói a camada.Em vez disso, copia os artefactos de construção do local especificado no CodeUri propriedadedo recurso de camada. Para mais informações, consulte o notturi (p. 129) propriedade daAWS::Serverless::LayerVersion tipo de recurso.

Quando incluir o Metadata secção de atributos de recursos, pode utilizar o construir sam (p. 205)para construir a camada, tanto como um objeto independente, como uma dependência de um AWSLambda função.

• Como objeto independente. Pode querer criar apenas o objeto da camada, por exemplo, quando testarlocalmente uma mudança de código na camada e não precisa de construir toda a sua aplicação. Paraconstruir a camada de forma independente, especifique o recurso de camada com o sam buildlayer-logical-id comando.

• Como uma dependência de Lambda função. Quando incluir uma ID lógica da camada no Layerspropriedade de um Lambda função no mesmo AWS SAM ficheiro de modelo, a camada é umadependência desse Lambda função. Quando essa camada também inclui um Metadata secçãode atributos de recursos com um BuildMethod entrada, construindo a camada ao construir toda aaplicação com o sam build ou especificando o recurso de função com o sam build function-logical-id comando.

ExamplesExemplo de modelo 1: Criar uma camada contra o sistemaPython 3.6 RuntimeO exemplo seguinte AWS SAM modelo constrói uma camada contra o ambiente de execução Python 3.6.

Resources: MyLayer: Type: AWS::Serverless::LayerVersion Properties:

171

Page 177: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Construir tempos de runtimes personalizados

ContentUri: my_layer CompatibleRuntimes: - python3.6 Metadata: BuildMethod: python3.6 # Required to have AWS SAM build this layer

Exemplo de modelo 2: Crie uma camada utilizando um ficheiropersonalizadoO exemplo seguinte AWS SAM utiliza um ficheiro personalizado para construir a camada.

Resources: MyLayer: Type: AWS::Serverless::LayerVersion Properties: ContentUri: my_layer CompatibleRuntimes: - python3.8 Metadata: BuildMethod: makefile

O seguinte ficheiro de captura contém o objectivo e comandos que serão executados.

build-MyLayer: mkdir -p "$(ARTIFACTS_DIR)/python" cp *.py "$(ARTIFACTS_DIR)/python" python -m pip install -r requirements.txt -t "$(ARTIFACTS_DIR)/python"

Exemplo de comandos de construção de samO seguinte sam build os comandos criam camadas que incluem o Metadata secções de atributos derecursos.

# Build the 'layer-logical-id' resource independentlysam build layer-logical-id # Build the 'function-logical-id' resource and layers that this function depends onsam build function-logical-id

# Build the entire application, including the layers that any function depends onsam build

Construir tempos de runtimes personalizadosPode utilizar o construir sam (p. 205) para criar tempos de runtimes personalizados para o seuLambda função. Declara o seu Lambda função para utilizar um runtime personalizado especificandoRuntime: provided para a função.

Para criar um tempo de execução personalizado, declare o Metadata atributo de recursos com umBuildMethod: makefile entrada. Fornece um ficheiro de preenchimento personalizado, onde declaraum objetivo de construção do formulário build-function-logical-id que contém os comandos deconstrução para o seu runtime. O seu ficheiro é responsável por compilar o runtime personalizado, senecessário, e copiar os artefactos para a localização adequada necessária para os passos subsequentesno seu fluxo de trabalho.

172

Page 178: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Examples

ExamplesExemplo: = 1. Runtime para uma função escrita em ferrugemO seguinte AWS SAM modelo declara uma função que utiliza um tempo de execução personalizadopara um Lambda função escrita em Ferrugem e instruções sam build para executar os comandos parabuild-HelloRustFunction construir alvo.

Resources: HelloRustFunction: Type: AWS::Serverless::Function Properties: FunctionName: HelloRust Handler: bootstrap.is.real.handler Runtime: provided MemorySize: 512 CodeUri: . Metadata: BuildMethod: makefile

O seguinte makefile contém o objectivo de construção e os comandos que serão executados.

build-HelloRustFunction: cargo build --release --target x86_64-unknown-linux-musl cp ./target/x86_64-unknown-linux-musl/release/bootstrap $(ARTIFACTS_DIR)

Para mais informações sobre como configurar o seu ambiente de desenvolvimento, para executar o cargobuild comando no anterior makefile, consulte o Ferrugem Runtime para AWS Lambda publicação doblogue.

Exemplo: = 2. Criador de ficheiros para Python3.7 (Alternativa àutilização do construtor de agrupamento)Pode querer utilizar uma biblioteca ou módulo que não esteja incluído num construtor de agrupamento.Este exemplo mostra um AWS SAM modelo para um tempo de execução Python3.7 com um construtor deficheiros.

Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.7 Metadata: BuildMethod: makefile

O seguinte makefile contém o objectivo de construção e os comandos que serão executados.

build-HelloWorldFunction: cp *.py $(ARTIFACTS_DIR) cp requirements.txt $(ARTIFACTS_DIR) python -m pip install -r requirements.txt -t $(ARTIFACTS_DIR) rm -rf $(ARTIFACTS_DIR)/bin

173

Page 179: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Invocar funções localmente

Testar e depurar aplicativos semservidor

Com o AWS SAM interface da linha de comando (CLI), pode testar localmente e ignorar as suasaplicações sem servidor antes de carregar a sua aplicação para a nuvem AWS. Pode verificar se a suaaplicação está a comportar-se como esperado, depurar o que está errado e resolver quaisquer problemas,antes de passar pelos passos da embalagem e implementar a sua aplicação.

Quando invoca localmente um Lambda no modo de depuração dentro do AWS SAM CLI, pode entãoanexar um depurador ao mesmo. Com o depurador, pode atravessar o seu código por linha, ver os valoresde várias variáveis e corrigir problemas da mesma forma que faria para qualquer outra aplicação.

Tópicos• Invocar funções localmente (p. 174)• Correr API Gateway Localmente (p. 176)• Integração com testes automatizados (p. 178)• A gerar payload do evento de amostra (p. 180)• Depuração de passo a passo Lambda Funções localmente (p. 180)• Recuperar argumentos adicionais de depuração de execução (p. 186)

Invocar funções localmentePode invocar a sua função localmente utilizando o sam local invoke (p. 212) e fornecer a sua IDlógica de função e um ficheiro de evento. Em alternativa, sam local invoke também aceita stdincomo um evento.

Note

O sam local invoke o comando descrito nesta secção corresponde ao AWS CLI comando aws lambda invoke. Pode utilizar qualquer versão deste comando para invocar um Lambdaque carregou para a AWS Cloud.

Tem de executar sam local invoke no directório do projecto que contém a função que pretendeinvocar.

Exemplos:

# Invoking function with event file$ sam local invoke "Ratings" -e event.json

# Invoking function with event via stdin$ echo '{"message": "Hey, are you there?" }' | sam local invoke --event - "Ratings"

# For more options$ sam local invoke --help

Esta animação mostra a expressão de um Lambda funciona localmente utilizando o Código do MicrosoftVisual Studio:

174

Page 180: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorFicheiro de variável de ambiente

Ficheiro de variável de ambientePode utilizar o --env-vars com o invoke ou start-api comandos. Faz isto para fornecer um ficheiroJSON que contém valores para substituir as variáveis ambientais que já estão definidas no seu modelo defunção. Estruture o ficheiro da seguinte forma:

175

Page 181: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Layers

{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket" }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" }}

Por exemplo, se guardar este conteúdo num ficheiro denominado env.json, então o seguinte comandoutiliza este ficheiro para substituir as variáveis de ambiente incluídas:

sam local invoke --env-vars env.json

LayersSe a sua aplicação incluir camadas, consulte Como trabalhar com camadas (p. 158) para maisinformações sobre como resolver problemas de camadas no seu anfitrião local.

Correr API Gateway LocalmenteUtilize o sam local start-api (p. 213) para iniciar uma instância local de API Gateway que iráutilizar para testar a funcionalidade de pedido/resposta HTTP. Esta funcionalidade inclui recargas a quentepara lhe permitir desenvolver e iterar rapidamente sobre as suas funções.

Note

"Recarregamento a quente" é quando apenas os ficheiros que mudaram são atualizados semperder o estado da aplicação. Por outro lado, o "recarregamento ao vivo" é quando toda aaplicação é atualizada, de modo a que o estado da aplicação seja perdido.

Tem de executar sam local invoke no directório do projecto que contém a função que pretendeinvocar.

Exemplo:

sam local start-api

AWS SAM encontra automaticamente quaisquer funções no seu AWS SAM modelo que tem Api fontes deeventos definidas. Em seguida, o suporta nos caminhos HTTP definidos.

Esta animação mostra a execução API Gateway utilizando o Código do Microsoft Visual Studio:

176

Page 182: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorCorrer API Gateway Localmente

No exemplo seguinte, o Ratings montagens de função ratings.py:handler() em /ratings paraGET pedidos:

Ratings: Type: AWS::Serverless::Function Properties: Handler: ratings.handler

177

Page 183: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Layers

Runtime: python3.6 Events: Api: Type: Api Properties: Path: /ratings Method: get

Por predefinição, AWS SAM utilizações Integração de proxy e espera a resposta do seu Lambda funçãopara incluir um ou mais dos seguintes: statusCode, headers, ou body.

Por exemplo, .

// Example of a Proxy Integration responseexports.handler = (event, context, callback) => { callback(null, { statusCode: 200, headers: { "x-custom-header" : "my custom header value" }, body: "hello world" });}

Por exemplos noutro AWS Lambda idiomas, consulte Integração de proxy.

Ficheiro de variável de ambiente

Pode utilizar o --env-vars com o invoke ou start-api comandos para fornecer um ficheiro JSONque contém valores para substituir as variáveis do ambiente já definidas no seu modelo de função.Estruture o ficheiro da seguinte forma:

{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket" }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" },}

Por exemplo, se guardar este conteúdo num ficheiro denominado env.json, então o seguinte comandoutiliza este ficheiro para substituir as variáveis de ambiente incluídas:

sam local start-api --env-vars env.json

LayersSe a sua aplicação incluir camadas, consulte Como trabalhar com camadas (p. 158) para maisinformações sobre como resolver problemas de camadas no seu anfitrião local.

Integração com testes automatizadosPode utilizar o sam local invoke comando para testar manualmente o seu código executando Lambdafunções localmente. Com o AWS SAM CLI, pode facilmente atribuir os testes de integração automatizadosao executar os testes em primeiro lugar Lambda antes de implementar na nuvem AWS.

178

Page 184: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Integração com testes automatizados

O sam local start-lambda inicia um parâmetro de avaliação local que emula o AWS Lambda invocaro parâmetro de avaliação. Pode invocar-lo dos seus testes automatizados. Porque este parâmetro deavaliação emula o AWS Lambda invocar o parâmetro de avaliação, pode escrever testes uma vez e,em seguida, executá-los (sem quaisquer modificações) contra o Lambda função ou contra uma Lambdafunção. Também pode executar os mesmos testes contra uma aplicação AWS SAM na sua ficha de CI/CD.

É assim que o processo funciona:

1. Iniciar o local Lambda endpoint.

Iniciar o local Lambda ao executar o seguinte comando no directório que contém o seu AWS SAMmodelo:

sam local start-lambda

Este comando inicia um parâmetro de avaliação local em http://127.0.0.1:3001 que emulamAWS Lambda. Pode executar os seus testes automatizados contra este local Lambda endpoint.Quando invocar este parâmetro de avaliação utilizando o AWS CLI ou SDK, executa localmente oLambda função especificada no pedido e devolve uma resposta.

2. Execute um teste de integração contra o parâmetro de avaliação Lambda local.

No seu teste de integração, pode utilizar o SDK AWS para invocar o seu Lambda função com osdados do teste, aguarde pela resposta e verifique se a resposta é o que espera. Para executar o testede integração localmente, deve configurar o SDK AWS para enviar uma Lambda Invocar a chamadaAPI para invocar o Lambda que iniciou no passo anterior.

O seguinte é um exemplo Python (os sdks AWS para outros idiomas têm configurações semelhantes):

import boto3import botocore

# Set "running_locally" flag if you are running the integration test locallyrunning_locally = True

if running_locally:

# Create Lambda SDK client to connect to appropriate Lambda endpoint lambda_client = boto3.client('lambda', region_name="us-west-2", endpoint_url="http://127.0.0.1:3001", use_ssl=False, verify=False, config=botocore.client.Config( signature_version=botocore.UNSIGNED, read_timeout=1, retries={'max_attempts': 0}, ) )else: lambda_client = boto3.client('lambda')

# Invoke your Lambda function as you normally usually do. The function will run# locally if it is configured to do soresponse = lambda_client.invoke(FunctionName="HelloWorldFunction")

# Verify the responseassert response == "Hello World"

179

Page 185: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

A gerar payload do evento de amostra

Pode utilizar este código para testar o teste Lambda funções definindo running_locally paraFalse. Configura o SDK para ligar a AWS Lambda na nuvem AWS.

A gerar payload do evento de amostraPara fazer o desenvolvimento local e testar Lambda mais fácil, pode gerar e personalizar oscarregamentos de eventos para vários serviços AWS como API Gateway, AWS CloudFormation, AmazonS3, e assim em.

Para obter a lista completa de serviços que pode gerar payload de eventos de exemplo, utilize estecomando:

sam local generate-event --help

Para obter a lista de opções que pode utilizar para um determinado serviço, utilize este comando:

sam local generate-event [SERVICE] --help

Exemplos:

#Generates the event from S3 when a new object is createdsam local generate-event s3 put

# Generates the event from S3 when an object is deletedsam local generate-event s3 delete

Depuração de passo a passo Lambda Funçõeslocalmente

Pode usar AWS SAM com vários conjuntos de ferramentas AWS para testar e depurar as suas aplicaçõessem servidor localmente.

Por exemplo, pode efectuar a depuração gradual do seu Lambda funções. A depuração de passotorna mais fácil compreender o que o código está a fazer. Aperta o ciclo de feedback ao tornar possívelencontrar e resolver problemas que possa executar na nuvem.

Utilizar conjuntos de ferramentas AWSOs conjuntos de ferramentas AWS são plug-ins que lhe proporcionam a capacidade de realizar muitastarefas comuns de depuração, como definir breakpoints, executar linhas de código por linha e inspeccionaros valores de variáveis. Os conjuntos de ferramentas facilitam a criação, depuração e implementaçãode aplicações sem servidor que são criadas utilizando AWS. Proporcionam uma experiência paraconstrução, teste, depuração, implementação e invocação Lambda funções integradas no ambiente dedesenvolvimento integrado (IDE).

Para mais informações sobre os conjuntos de ferramentas AWS que pode utilizar com AWS SAM, consulteo seguinte:

180

Page 186: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Correr AWS SAM Localmente

• Toolkit da AWS para JetBrains• Kit de ferramentas AWS para o pigleto• Kit de ferramentas AWS para intellij• Kit de ferramentas AWS para o código visual do estúdio

Correr AWS SAM LocalmenteOs comandos sam local invoke e sam local start-api ambos suportam a depuração local doseu Lambda funções. Para executar AWS SAM localmente com suporte de depuração de desdepuraçãoativado, especificar --debug-port ou -d na linha de comandos. Por exemplo, .

# Invoke a function locally in debug mode on port 5858sam local invoke -d 5858 <function logical id>

# Start local API Gateway in debug mode on port 5858sam local start-api -d 5858

Note

Se estiver a utilizar sam local start-api, o local API Gateway a instância expõe todos osseus Lambda funções. Contudo, porque pode especificar uma única porta de depuração, só podedepurar uma função de cada vez. Tem de ligar para a sua API antes do AWS SAM O EMC liga-seà porta, o que permite que o depurador ligue.

Tópicos

Os seguintes tópicos fornecem exemplos de como configurar o seu ambiente para testar e depurar as suasaplicações sem servidor localmente.

• Desdepuração de funções Node.js localmente (p. 181)• Funções de redução de depuração localmente (p. 183)• Desacelerar as funções de Golang a nível local (p. 185)

Desdepuração de funções Node.js localmenteSegue-se um exemplo que mostra como depurar uma função Node.js com o Microsoft Visual Studio Code:

181

Page 187: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Node.js

Para configurar o Microsoft Visual Studio Code para desbucagem de funções do Node.js com o AWSSAM CLI, utilize a seguinte configuração de lançamento. Antes de o fazer, defina o directório onde otemplate.yaml o ficheiro está localizado como a raiz da área de trabalho no Microsoft Visual StudioCode:

{ "version": "0.2.0",

182

Page 188: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Python

"configurations": [ { "name": "Attach to SAM CLI", "type": "node", "request": "attach", "address": "localhost", "port": 5858, // From the sam init example, it would be "${workspaceRoot}/hello-world" "localRoot": "${workspaceRoot}/{directory of node app}", "remoteRoot": "/var/task", "protocol": "inspector", "stopOnEntry": false } ] }

Note

O localRoot é definido com base no que os pontos de codeuri aparecem no template.yamlficheiro. Se existirem diretórios agrupados dentro do codeuri, que têm de ser refletidos nolocalRoot.Note

As versões do Node.js anteriores a 7 (por exemplo, Node.js 4.3 e Node.js 6.10) utilizam o legacyprotocolo, ao passo que as versões do Node.js incluindo e mais de 7 (por exemplo, Node.js 8.10)utilizam o inspector protocolo. Certifique-se de que especifica o protocolo correspondente noprotocol entrada da configuração do seu lançamento. Este foi testado com as versões 1.26,1.27 e 1.28 do Microsoft Visual Studio Code para o legacy e inspector protocolos.

Funções de redução de depuração localmenteA desbucagem de pião de pirata requer que permita a depuração remota no seu Lambda código defunção. Este é um processo de dois passos:

1. Instalar o biblioteca de evodócio e activá-lo no seu código.2. Configure o seu IDE para ligar ao depurador que configurou para a sua função.

Porque esta pode ser a sua primeira utilização AWS SAM CLI, iniciar com uma aplicação de boileronPython e instalar as dependências e o ptdôo da aplicação:

sam init --runtime python3.6 --name python-debuggingcd python-debugging/

# Install dependencies of our boilerplate apppip install -r hello_world/requirements.txt -t hello_world/build/

# Install ptvsd library for step through debuggingpip install ptvsd -t hello_world/build/

cp hello_world/app.py hello_world/build/

Configuração de ptístorA seguir, tem de ativar o ptdôo dentro do seu código. Para o fazer, abra hello_world/build/app.py, eadicione as seguintes especificidades de ptdôo:

import ptvsd

183

Page 189: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Python

# Enable ptvsd on 0.0.0.0 address and on port 5890 that we'll connect later with our IDEptvsd.enable_attach(address=('0.0.0.0', 5890), redirect_output=True)ptvsd.wait_for_attach()

Utilização 0.0.0.0 em vez de localhost para ouvir todas as interfaces de rede. 5890 é a portadepuração que pretende utilizar.

Código do Microsoft Visual StudioAgora que tem as dependências e o ptddativo ativado dentro do seu código, pode configurar o MicrosoftVisual Studio Code a depurar. Assumindo que ainda está na pasta da aplicação e tem o comando decódigo no seu caminho, abra o Microsoft Visual Studio Code utilizando este comando:

code .

Note

Se não tiver código no seu caminho, abra uma nova instância do Microsoft Visual Studio Code apartir do python-debugging/ pasta criada anteriormente.

Para configurar o Microsoft Visual Studio Code para depuração com o AWS SAM CLI, utilize a seguinteconfiguração de lançamento:

{ "version": "0.2.0", "configurations": [ { "name": "SAM CLI Python Hello World", "type": "python", "request": "attach", "port": 5890, "host": "localhost", "pathMappings": [ { "localRoot": "${workspaceFolder}/hello_world/build", "remoteRoot": "/var/task" } ] } ] }

Para o Microsoft Visual Studio Code, a propriedade localRoot sob o pathMappings chave éimportante. Existem dois motivos que ajudam a explicar esta configuração:

• raiz local: Este caminho deve ser montado no recipiente do acoplador e necessita de ter tanto aaplicação como as dependências ao nível da raiz.

• pasta workspace: Este caminho é o caminho absoluto onde a instância do Microsoft Visual Studio Codefoi aberta.

Se abriu o Microsoft Visual Studio Code num local diferente do python-debugging/, é necessáriosubstituí-lo pelo caminho absoluto onde python-debugging/ está localizado.

Depois de concluída a configuração do Microsoft Visual Studio Code desbugger, certifique-se de queadiciona um ponto de partida onde quer que queira hello_world/build/app.pye depois proceda daseguinte forma:

1. Executar o AWS SAM ROC para invocar a sua função.

184

Page 190: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Golang

2. Envie um pedido para o URL para invocar a função e inicializar a execução do código do ptdôo.3. Inicie o depurador dentro do Microsoft Visual Studio Code.

# Remember to hit the URL before starting the debugger in Microsoft Visual Studio Codesam local start-api -d 5890

# OR

# Change HelloWorldFunction to reflect the logical name found in template.yamlsam local generate-event apigateway aws-proxy | sam local invoke HelloWorldFunction -d 5890

Desacelerar as funções de Golang a nível localA depuração passo a passo da função de Golang é ligeiramente diferente quando comparada comNode.js, Java e Python. Exigimos Delve enquanto depurador, e envolva a sua função com ela no tempo deexecução. O depurador é executado no modo sem cabeça, ouvindo na porta de depuração.

Quando estiver a sair, tem de compilar a sua função no modo de depuração:

GOARCH=amd64 GOOS=linux go build -gcflags='-N -l' -o <output path> <path to code directory>

Desbucador DelveTem de compilar Delve para correr no contentor e fornecer o seu caminho local com o --debugger-pathargumento.

Construir Delve localmente da seguinte forma:

GOARCH=amd64 GOOS=linux go build -o <delve folder path>/dlv github.com/go-delve/delve/cmd/dlv

Caminho Debugger DelveO caminho de saída tem de terminar em /dlv. O recipiente do acoplador espera que o ficheiro binário dlvesteja no <delve folder path>. Se não for, ocorre um problema de montagem.

Note

O --debugger-path é o caminho para o directório que contém o ficheiro binário dlv que écompilado a partir do código anterior.

Exemplo:

Invocar AWS SAM semelhante ao seguinte:

sam local start-api -d 5986 --debugger-path <delve folder path>

Versão API do Desbugger DelvePara executar o Delve com uma versão API à sua escolha, especifique a versão API pretendida utilizandoum argumento de depuração adicional (p. 186) -delveAPI.

Note

Para exposições como o jogador de golfe, o Microsoft Visual Studio Code, etc., é importanteexecutar Delve na versão API 2 modo.

185

Page 191: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorRecuperar argumentos adicionais

de depuração de execuçãoExemplo:

Invocar AWS SAM com o Delve desbugger no modo API versão 2:

sam local start-api -d 5986 --debugger-path <delve folder path> --debug-args "-delveAPI=2"

ExampleSegue-se uma configuração de lançamento de exemplo para o Microsoft Visual Studio Code para anexar auma sessão de depuração.

{ "version": "0.2.0", "configurations": [ { "name": "Connect to Lambda container", "type": "go", "request": "launch", "mode": "remote", "remotePath": "", "port": <debug port>, "host": "127.0.0.1", "program": "${workspaceRoot}", "env": {}, "args": [], }, ]}

Recuperar argumentos adicionais de depuração deexecução

Para passar os argumentos de execução adicionais quando estiver a reduzir a sua função, utilize a variávelambiente DEBUGGER_ARGS. Isto passa uma cadeia de argumentos directamente para o comando deexecução que o AWS SAM A TIA utiliza para iniciar a sua função.

Por exemplo, se quiser carregar um depurador como ikpdb no decorrer da sua função Python,pode passar o seguinte como DEBUGGER_ARGS: -m ikpdb --ikpdb-port=5858 --ikpdb-working-directory=/var/task/ --ikpdb-client-working-directory=/myApp --ikpdb-address=0.0.0.0. Isto carregaria ikpdb no tempo de execução com os outros argumentosespecificados.

Neste caso, o seu AWS SAM O comando SERIA:

DEBUGGER_ARGS="-m ikpdb --ikpdb-port=5858 --ikpdb-working-directory=/var/task/ --ikpdb-client-working-directory=/myApp --ikpdb-address=0.0.0.0" echo {} | sam local invoke -d 5858 myFunction

Pode passar os argumentos de desmantelamento para as funções de todos os tempos de execução.

186

Page 192: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Implementar utilizando o AWS SAM CLI

Implementar aplicações sem servidorAWS SAM utilizações AWS CloudFormation como o mecanismo de expansão subjacente. Para maisinformações, consulte O que é a turvação AWS?.

Pode implementar a sua aplicação utilizando AWS SAM comandos da interface da linha de comando (CLI).Também pode utilizar outros serviços AWS que se integram com AWS SAM para automatizar as suasimplementações.

A entrada padrão para a implementação de aplicações sem servidor é a construção de artefactos criadosutilizando o construir sam (p. 205). Para mais informações sobre o sam build comando, verConstruir aplicações sem servidor (p. 170).

Implementar utilizando o AWS SAM CLIDepois de desenvolver e testar a sua aplicação sem servidor localmente, pode implementar a suaaplicação utilizando o sam deploy comando.

Se quiser AWS SAM para guiá-lo através da implementação com prompts, especifique o --guidedbandeira. Quando especificar este sinalizador, o sam deploy o comando bloqueia os artefactos daaplicação, carrega-os para Amazon Simple Storage Service (Amazon S3) e instala a sua aplicação naAWS Cloud.

Exemplo:

# Deploy an application using prompts:sam deploy --guided

Publicar aplicações sem servidorO AWS Serverless Application Repository é um serviço que aloja aplicações sem servidor que sãoconstruídas AWS SAM. Se quiser partilhar aplicações sem servidor com outras pessoas, pode publicá-lasno AWS Serverless Application Repository. Também pode pesquisar, navegar e implementar aplicaçõessem servidor que tenham sido publicadas por outros. Para mais informações, consulte O que é o AWSServerless Application Repository?.

Implementações automáticasPode usar AWS SAM com vários outros serviços AWS para automatizar o processo de implementação dasua aplicação sem servidor.

• CodeBuild: Você usa o CodeBuild para criar, testar localmente e compactar seu aplicativo sem servidor.Para obter mais informações, consulte O que é o CodeBuild?

• CodeDeploy: use o CodeDeploy para implantar gradualmente as atualizações dos seus aplicativossem servidor. Para obter mais informações, consulte Implementar aplicações sem servidorgradualmente (p. 188).

187

Page 193: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Troubleshooting

• CodePipeline: Utiliza CodePipeline para modelar, visualizar e automatizar os passos necessários paralibertar a sua aplicação sem servidor. Para obter mais informações, consulte O que é o CodePipeline?

Topics

• Implementar aplicações sem servidor gradualmente (p. 188)

TroubleshootingErro de CLI: "Restrições de segurança não satisfeitas"Ao executar sam deploy --guided, é-lhe solicitado a pergunta HelloWorldFunction may nothave authorization defined, Is this okay? [y/N]. Se responder a esta mensagem com"N" (a resposta predefinida), verá o seguinte erro:

Error: Security Constraints Not Satisfied

A mensagem está a informá-lo de que a aplicação que está prestes a implementar pode ter um APIGateway API configurada sem autorização. Ao responder "N" a esta mensagem (a predefinição), está adizer que não está OK.

Para resolver isto, tem as seguintes opções:

• Configure a sua candidatura com autorização. Para obter informações sobre configurar autorização,consulte Controlo do Acesso a API Gateway API (p. 162).

• Responda a esta pergunta com "Y" para indicar que está bem com a implementação de uma aplicaçãoque tem um API Gateway API configurada sem autorização.

Implementar aplicações sem servidor gradualmenteSe utilizar AWS SAM para criar a sua aplicação sem servidor, vem incorporada com CodeDeploy parafornecer Lambda implementações. Com apenas algumas linhas de configuração, AWS SAM faz o seguintepara si:

• Implementa novas versões do seu Lambda e cria automaticamente alias que apontam para a novaversão.

• Altera gradualmente o tráfego do cliente para a nova versão até estar satisfeito de que está a funcionarcomo esperado ou de volta à atualização.

• Define as funções de teste de pré-tráfego e pós-tráfego para verificar se o código recém-implementadoestá corretamente configurado e a sua aplicação funciona como esperado.

• Rebola a expansão se CloudWatch os alarmes são accionados.

Note

Se permitir implementações graduais através do seu AWS SAM modelo, um CodeDeploy recursoé criado automaticamente para si. Pode ver o CodeDeploy recursos diretamente através doConsole de gerenciamento da AWS.

Exemplo:

188

Page 194: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Implementar gradualmente

O exemplo seguinte demonstra uma versão simples de utilização CodeDeploy para mudar gradualmenteos clientes para a sua versão recém-implementada:

Resources: MyLambdaFunction: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: nodejs12.x CodeUri: s3://bucket/code.zip

AutoPublishAlias: live

DeploymentPreference: Type: Canary10Percent10Minutes Alarms: # A list of alarms that you want to monitor - !Ref AliasErrorMetricGreaterThanZeroAlarm - !Ref LatestVersionErrorMetricGreaterThanZeroAlarm Hooks: # Validation Lambda functions that are run before & after traffic shifting PreTraffic: !Ref PreTrafficLambdaFunction PostTraffic: !Ref PostTrafficLambdaFunction

Estas revisões ao AWS SAM faz o seguinte:

• infoinfoalias automático: Ao adicionar esta propriedade e especificar um nome pseudónimo, AWS SAM:• Deteta quando o novo código está a ser implementado, com base nas alterações ao Lambda funções

Amazon S3 URI.• Cria e publica uma versão atualizada dessa função com o código mais recente.• Cria um pseudónimo com um nome que fornece (a menos que já exista um alias) e aponta para a

versão actualizada do Lambda função. As invocações de função devem usar o qualificador de aliaspara aproveitar isso. Se não está familiarizado com Lambda função de resolução e pseudónimos,consulte AWS Lambda Função Versioning e Pseudónimos .

• Tipo de preferência de implementação: No exemplo anterior, 10 por cento do tráfego do seu clienteé imediatamente alterado para a sua nova versão. Após 10 minutos, todo o tráfego é transferidopara a nova versão. No entanto, se o seu pré-gancho/pós-gancho testes fracassados ou se foracionado um alarme de relógio discreto, o código de barras remonta a sua implementação. A tabelaseguinte descreve outras opções de mudança de tráfego que estão disponíveis para além da utilizadaanteriormente. Observe o seguinte.• Canárias: : o tráfego é deslocado em dois incrementos. Pode escolher entre as opções pré-definidas.

As opções especificam a percentagem de tráfego que mudou para a sua atualização Lambda a versãoda função no primeiro incremento e o intervalo, em minutos, antes do tráfego restante ser deslocadono segundo incremento.

• Linear : o tráfego é deslocado em incrementos iguais com um número igual de minutos entre cadaincremento. Pode escolher entre opções lineares predefinidas que especificam a percentagem detráfego que é deslocada em cada incremento e o número de minutos entre cada incremento.

• Tudo ao mesmo tempo: Todo o tráfego é desviado do original Lambda função para a atualizaçãoLambda versão da função de uma vez.

Tipo de preferência de implantação

Canary10Percent30Minutes

Canary10Percent5Minutes

Canary10Percent10Minutes

189

Page 195: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Implementar gradualmente

Tipo de preferência de implantação

Canary10Percent15Minutes

Linear10PercentEvery10Minutes

Linear10PercentEvery1Minute

Linear10PercentEvery2Minutes

Linear10PercentEvery3Minutes

AllAtOnce

• alarmes Estes são CloudWatch alarmes que são accionados por erros levantados pela implementação.Retornam automaticamente a sua implementação. Um exemplo é se o código atualizado que estáa implementar está a criar erros na aplicação. Outro exemplo é se AWS Lambda ou personalizadoCloudWatch as métricas que especificou violaram o limiar do alarme.

• Ganchos: Estas são funções de teste de pré-tráfego e pós-tráfego que executam verificações de lixidadeantes de a mudança de trânsito começar para a nova versão e depois de a mudança de tráfego serconcluída.• pré-tráfego: Antes do início do trânsito, o código de barras invoca o gancho de pré-tráfego Lambda

função. Isto Lambda tem de voltar a ligar ao código de identificação e indicar sucesso ou falha. Se afunção falhar, aborta e comunica uma falha AWS CloudFormation. Se a função for bem-sucedida, ocódigo de barras avança para a mudança de tráfego.

• pós-trânsito: Após a conclusão do trânsito, o código de barras invoca o gancho pós-trânsito Lambdafunção. Isto é semelhante ao gancho de pré-tráfego, onde a função tem de voltar a ligar ao códigode codequepara comunicar um sucesso ou falha. Use hooks de pós-tráfego para executar testes deintegração ou outras ações de validação.

Para obter mais informações, consulte Referência do SAM para implantações seguras.

190

Page 196: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Como trabalhar com logs

Monitorização de aplicações semservidor

Depois de expandir a sua aplicação sem servidor para a AWS Cloud, precisa de verificar se está afuncionar correctamente.

Tópicos• Como trabalhar com logs (p. 191)

Como trabalhar com logsPara simplificar a resolução de problemas, o AWS SAM O CLI tem um comando chamado registossam (p. 216). Este comando permite-lhe obter registos gerados pelo seu Lambda a partir da linha decomandos.

Note

O sam logs funciona para todos AWS Lambda funções, não apenas aquelas que implementaAWS SAM.

A obter registos por AWS CloudFormation PilhaQuando a sua função faz parte de um AWS CloudFormation pode obter registos utilizando a ID lógica dafunção:

sam logs -n HelloWorldFunction --stack-name mystack

A obter registos por Lambda Nome da funçãoOu pode obter registos utilizando o nome da função:

sam logs -n mystack-HelloWorldFunction-1FJ8PD

Registos de varejoAdicionar --tail para esperar por novos registos e vê-los à medida que chegam. Isto é útil durante aimplementação ou quando está a resolver problemas de produção.

sam logs -n HelloWorldFunction --stack-name mystack --tail

Visualizar registos para um intervalo de tempoespecíficoPode visualizar registos para um intervalo de tempo específico utilizando o -s e -e opções:

191

Page 197: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Filtrar registos

sam logs -n HelloWorldFunction --stack-name mystack -s '10min ago' -e '2min ago'

Filtrar registosUtilize o --filter para encontrar rapidamente registos que correspondam aos termos, frases ou valoresnos seus eventos de registo:

sam logs -n HelloWorldFunction --stack-name mystack --filter "error"

Na saída, o AWS SAM O ROC sublinha todas as ocorrências da palavra "erro" para que possa facilmentelocalizar a palavra-chave do filtro dentro da saída do registo.

Erro ao destacarQuando Lambda falhas ou tempos de funcionamento, o AWS SAM CLI realça a mensagem de tempo limitea vermelho. Isto ajuda-o a localizar facilmente execuções específicas que são temporizadas dentro de umfluxo gigante de saída de registo.

JSON Impressão bonitaSe as suas mensagens de registo imprimir cadeias JSON, o AWS SAM A TIA pretty the JSON para oajudar a analisar visualmente e compreender o JSON.

192

Page 198: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Prerequisites

Publicar aplicações sem servidorutilizando o AWS SAM CLI

Pode utilizar o AWS SAM CLI para publicar a sua candidatura ao AWS Serverless Application Repositorypara disponibilizá-lo para que os outros encontrem e implementem.

A aplicação que pretende publicar tem de ser aquela que definiu AWS SAM. Também é necessário testá-lo localmente e/ou na nuvem AWS. O pacote de implementação da aplicação e AWS SAM são as entradaspara os seguintes passos do procedimento.

As seguintes instruções criam uma nova aplicação, criam uma nova versão de uma aplicação existenteou actualizam os metadados de uma aplicação existente. Isto depende se a aplicação já existe no AWSServerless Application Repository, e se quaisquer metadados da aplicação estão a mudar. Para maisinformações sobre metadados de aplicações utilizados para publicar aplicações, consulte AWS SAMPropriedades da secção de metadados do modelo (p. 196).

PrerequisitesAntes de publicar um aplicativo no AWS Serverless Application Repository, você precisa do seguinte:

• Uma conta AWS válida com um utilizador IAM com permissões de administrador. Consulte Configuraruma conta da AWS.

• Versão 1.16.77 ou posterior do AWS CLI instalado. Consulte Instalar a AWS Command Line Interface.Se tiver o AWS CLI instalado, pode obter a versão executando o seguinte comando:

aws --version

• O AWS SAM CLI (interface de linha de comando) instalado. Consulte Instalar a CLI do AWS SAM. Podedeterminar se o AWS SAM O CLI está instalado executando o seguinte comando:

sam --version

• Um válido Modelo de aplicativo sem servidor da AWS (AWS SAM) modelo.• O seu aplicação e dependências referenciadas pelo AWS SAM modelo.• Uma versão semântica para a sua candidatura (necessário para partilhar a sua candidatura

publicamente). Este valor pode ser tão simples como 1,0.• Um URL que aponta para o código fonte da sua aplicação.• Um arquivo README.md. Esse arquivo descreve como os clientes podem usar seu aplicativo e de que

forma eles devem configurá-lo antes de implantá-lo nas suas respectivas contas da AWS.• Um LICENSE.txt ficheiro (necessário para partilhar a sua candidatura publicamente).• Uma política de buckets do Amazon S3 válida que concede as permissões de leitura de serviço para os

artefatos carregados no Amazon S3 quando você criou o pacote do seu aplicativo. Para o fazer, sigaestes passos:

1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.2. Escolha o bucket do Amazon S3 que você usou para empacotar o aplicativo.3. Escolha a guia Permissions (Permissões).4. Clique no botão de Política de bucket.

193

Page 199: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Publicar uma nova aplicação

5. Cole a declaração da política a seguir no Bucket policy editor (Editor de política do bucket).Certifique-se de que substitui o nome do seu balde no valor Propriedade de recurso.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "serverlessrepo.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<your-bucket-name>/*" } ]}

6. Clique no botão Salvar.

Publicar uma nova aplicaçãoEtapa 1 Adicionar uma secção de metadados ao AWSSAM ModeloPrimeiro adicione um Metadata para o seu AWS SAM modelo. Fornecer a informação da aplicação a serpublicada no AWS Serverless Application Repository.

O seguinte é um exemplo Metadata secção:

Metadata: AWS::ServerlessRepo::Application: Name: my-app Description: hello world Author: user1 SpdxLicenseId: Apache-2.0 LicenseUrl: LICENSE.txt ReadmeUrl: README.md Labels: ['tests'] HomePageUrl: https://github.com/user1/my-app-project SemanticVersion: 0.0.1 SourceCodeUrl: https://github.com/user1/my-app-project

Resources: HelloWorldFunction: Type: AWS::Lambda::Function Properties: ... CodeUri: source-code1 ...

Para mais informações sobre as propriedades do Metadata secção no AWS SAM modelo, consulte AWSSAM Propriedades da secção de metadados do modelo (p. 196).

Etapa 2. Empacotar o aplicativo doExecutar o seguinte AWS SAM CLI comando:

194

Page 200: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Etapa 3 Publicar a aplicação

sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket <your-bucket-name>

O comando carrega os artefactos da aplicação para Amazon S3 e obtém um novo ficheiro de modelochamado packaged.yaml. Utilize este ficheiro no próximo passo para publicar a aplicação no AWSServerless Application Repository. O packaged.yaml o ficheiro do modelo é semelhante ao ficheirode modelo original (template.yaml), mas tem uma diferença chave—o CodeUri, LicenseUrl, eReadmeUrl as propriedades apontam para o Amazon S3 balde e objetos que contenham os respetivosartefactos.

O seguinte trecho de um arquivo de modelo de exemplo packaged.yaml mostra a propriedade CodeUri:

MySampleFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://bucketname/fbd77a3647a4f47a352fcObjectGUID

...

Etapa 3 Publicar a aplicaçãoExecutar o seguinte AWS SAM CLI comando:

sam publish \ --template packaged.yaml \ --region us-east-1

O resultado do sam publish inclui uma ligação para AWS Serverless Application Repository diretamentepara a sua aplicação. Também pode ir para o AWS Serverless Application Repository página de destinodiretamente e pesquise a sua candidatura.

O seu a aplicação está definida como privada por predefinição, pelo que não é visível para outras contasAWS. Para partilhar a sua candidatura com outros, tem de tornar público ou conceder permissão para umalista específica de contas AWS. Para obter informações sobre como partilhar a sua aplicação utilizando oAWS CLI, consulte Utilizar políticas baseadas em recursos para o AWS Serverless Application Repository.Para obter informações sobre como partilhar a sua aplicação utilizando a consola, consulte Partilhar umaaplicação através da consola.

Publicar a nova versão de um aplicativo existente ()Depois de ter publicado uma aplicação para AWS Serverless Application Repository, pode quererpublicar uma nova versão do mesmo. Por exemplo, pode ter alterado o seu Lambda código de função ouadicionado um novo componente à arquitetura da sua aplicação.

Para atualizar uma aplicação que tenha publicado anteriormente, publica a aplicação utilizando o mesmoprocesso acima. Fornece o mesmo nome de aplicação que publicou originalmente com, mas com umnovo valor de nova versão de semanão. Também fornece o nome da aplicação e o número da versãosematicina na secção Metadados do AWS SAM ficheiro de modelo.

Por exemplo, se publicou uma aplicação com o nome SampleApp e sematicversão 1.0.0, para atualizaressa aplicação, o AWS SAM o modelo tem de ter o nome da aplicação SampleAppe a versão sematicadapode ser 1.0.1 (ou algo diferente de 1.0.0).

195

Page 201: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Tópicos adicionais

Tópicos adicionais• AWS SAM Propriedades da secção de metadados do modelo (p. 196)

AWS SAM Propriedades da secção de metadadosdo modelo

AWS::ServerlessRepo::Application é uma chave de metadados que pode utilizar para especificaras informações da aplicação que pretende publicar AWS Serverless Application Repository.

Note

AWS CloudFormation funções intrínsecas não são suportados peloAWS::ServerlessRepo::Application chave de metadados.

PropertiesEsta tabela fornece informações sobre as propriedades do Metadata secção do AWS SAM modelo. Estasecção é necessária para publicar aplicações para AWS Serverless Application Repository usando o AWSSAM CLI.

Propriedade Type Obrigatório Description (Descrição)

Name String. TRUE O nome do aplicativo.

Comprimento mínimo = 1. Tamanho máximo = 140.

Padrão: "[a-zA-Z0-9\\-]+";

Description String. TRUE A descrição do aplicativo.

Comprimento mínimo = 1. Tamanho máximo = 256.

Author String. TRUE O nome do autor que publica o aplicativo.

Comprimento mínimo = 1. Tamanho máximo = 127.

Padrão: "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";

SpdxLicenseId String. FALSE Um identificador de licença válido. Para ver a lista deidentificadores de licenças válidos, consulte Lista delicenças SPDX no Troca de dados do pacote de software(SPDX) website.

LicenseUrl String. FALSE A referência a um ficheiro de licença local ou umAmazon S3 link para um ficheiro de licença quecorresponde ao valor spdxlicenseid da sua aplicação.

Um AWS SAM ficheiro que não foi empacotadoutilizando o sam package pode ter uma referência aum ficheiro local para esta propriedade. No entanto,para que uma aplicação seja publicada utilizando o sampublish , esta propriedade tem de ser uma referência aAmazon S3 balde.

196

Page 202: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Casos de uso

Propriedade Type Obrigatório Description (Descrição)Tamanho máximo: 5 MB

Forneça um valor para esta propriedade para tornaro aplicativo público. Note que não pode atualizar estapropriedade depois de a sua candidatura ter sidopublicada. Assim, para adicionar uma licença a umaaplicação, tem de eliminá-la primeiro ou publicar umanova aplicação com um nome diferente.

ReadmeUrl String. FALSE A referência a um ficheiro de leitura local ou um AmazonS3 para o ficheiro readme que contém uma descriçãomais detalhada da aplicação e como funciona.

Um AWS SAM ficheiro que não foi empacotadoutilizando o sam package pode ter uma referência aum ficheiro local para esta propriedade. Contudo, a serpublicado utilizando o sam publish , esta propriedadetem de ser uma referência a Amazon S3 balde.

Tamanho máximo: 5 MB

Labels String. FALSE Os rótulos que melhoram a descoberta de aplicaçõesnos resultados da pesquisa.

Comprimento mínimo = 1. Tamanho máximo = 127.Número máximo de etiquetas: 10*

Padrão: "^[a-zA-Z0-9+\\-_:\\/@]+$";

HomePageUrl String. FALSE Um URL com mais informações sobre o aplicativo —por exemplo, o local do repositório do GitHub para oaplicativo.

SemanticVersion String. FALSE A versão semântica do aplicativo. Para a especificaçãode Versioning semântica, consulte o Versioningsemântica website.

Forneça um valor para esta propriedade para tornar oaplicativo público.

SourceCodeUrl String. FALSE Um link para um repositório público para o código-fontedo aplicativo.

Casos de usoEsta secção lista os casos de utilização para aplicações de publicação, juntamente com o Metadatapropriedades processadas para esse caso. Propriedades que são não para um determinado caso deutilização são ignorados.

• Criar uma nova aplicação – É criada uma nova aplicação se não houver aplicação no AWS ServerlessApplication Repository com um nome correspondente para uma conta.• Name

• SpdxLicenseId

• LicenseUrl

• Description

197

Page 203: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Example

• Author

• ReadmeUrl

• Labels

• HomePageUrl

• SourceCodeUrl

• SemanticVersion

• O conteúdo do AWS SAM modelo (por exemplo, quaisquer fontes de eventos, recursos e código defunção Lambda)

 • Criar uma versão de aplicação – É criada uma versão de aplicação se já existir uma aplicação no AWS

Serverless Application Repository com um nome correspondente para uma conta e a versão de fim desemana é alterar.• Description

• Author

• ReadmeUrl

• Labels

• HomePageUrl

• SourceCodeUrl

• SemanticVersion

• O conteúdo do AWS SAM modelo (por exemplo, quaisquer fontes de eventos, recursos e código defunção Lambda)

 • Atualizar uma aplicação – Uma aplicação é atualizada se já existir uma aplicação no AWS Serverless

Application Repository com um nome correspondente para uma conta e a versão de fim de semana nãoé alterar.• Description

• Author

• ReadmeUrl

• Labels

• HomePageUrl

ExampleO seguinte é um exemplo Metadata secção:

Metadata: AWS::ServerlessRepo::Application: Name: my-app Description: hello world Author: user1 SpdxLicenseId: Apache-2.0 LicenseUrl: LICENSE.txt ReadmeUrl: README.md Labels: ['tests'] HomePageUrl: https://github.com/user1/my-app-project SemanticVersion: 0.0.1 SourceCodeUrl: https://github.com/user1/my-app-project

198

Page 204: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Processo DynamoDB Eventos

Exemplo de aplicações sem servidorOs exemplos seguintes mostram como transferir, testar e implementar várias aplicações sem servidor—incluindo como configurar fontes de eventos e recursos AWS.

Tópicos• Processo DynamoDB Eventos (p. 199)• Processo Amazon S3 Eventos (p. 201)

Processo DynamoDB EventosCom esta aplicação de exemplo, desenvolve o que aprendeu na visão geral e no guia de Iniciação Rápidae instale outra aplicação de exemplo. Esta aplicação consiste num Lambda função que é invocada porum DynamoDB fonte de evento de tabela. O Lambda é muito simples—regista os dados que foramtransmitidos através da mensagem de origem do evento.

Este exercício mostra como simular mensagens de origem de eventos que são passadas para Lambdaquando são invocadas.

Antes de começarCertifique-se de que concluiu a configuração necessária no Como instalar a CLI do AWS SAM (p. 3).

Etapa 1 Inicializar o aplicativoNesta secção, transfere o pacote de aplicações, que consiste num AWS SAM modelo e código deaplicação.

Como inicializar o aplicativo

1. Execute o seguinte comando em um prompt de comando da CLI do AWS SAM.

sam init \--location gh:aws-samples/cookiecutter-aws-sam-dynamodb-python \--no-input

2. Revise o conteúdo do diretório criado pelo comando (dynamodb_event_reader/):

• template.yaml – Define dois recursos AWS que as necessidades de aplicação do dinmodb Read:Lambda função e um DynamoDB tabela. O modelo também define o mapeamento entre os doisrecursos.

• read_dynamodb_event/ diretório – Contém o DynamoDB código de aplicação.

Etapa 2. Testar o aplicativo localmentePara testes locais, utilize o AWS SAM CLI para gerar uma amostra DynamoDB e invocar o Lambdafunção:

sam local generate-event dynamodb update | sam local invoke --event - ReadDynamoDBEvent

199

Page 205: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorEtapa 3 Empacotar o aplicativo do

O generate-event cria uma mensagem de origem do evento de teste como as mensagens que sãocriadas quando todos os componentes são implementados na nuvem AWS. Esta mensagem de origem doevento está presa ao Lambda função redynamodbevent.

Verifique se as mensagens esperadas são impressas na consola, com base no código fonte em app.py.

Etapa 3 Empacotar o aplicativo doDepois de testar a sua candidatura localmente, utilize o AWS SAM CLI para criar um pacote deimplementação que utiliza para implementar a aplicação na nuvem AWS.

Como criar um pacote de implantação do Lambda

1. Crie um bucket do S3 no local onde deseja salvar o código empacotado. Se você quiser usar umbucket do S3 existente, ignore esta etapa.

aws s3 mb s3://bucketname

2. Criar o pacote de implementação executando o seguinte package Comando de comando nainstrução de comando.

sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket bucketname

Especifica o novo ficheiro de modelo, packaged.yaml, ao implementar a aplicação no próximopasso.

Etapa 4. Implante o aplicativo do .Agora que criou o pacote de implementação, utiliza-o para implementar a aplicação na nuvem AWS. Emseguida, teste a aplicação.

Para expandir a aplicação sem servidor para a nuvem AWS

• No AWS SAM CLI, utilize o deploy Comando de EB para implementar todos os recursos que definiuno modelo.

sam deploy \ --template-file packaged.yaml \ --stack-name sam-app \ --capabilities CAPABILITY_IAM \ --region us-east-1

No comando, o --capabilities o parâmetro permite a criação de turvação AWS para criar umafunção IAM.

AWS CloudFormation cria os recursos AWS definidos no modelo. Pode aceder aos nomes destesrecursos no AWS CloudFormation consola.

Para testar a aplicação sem servidor na nuvem AWS

1. Abra o console do DynamoDB.2. Insira um registo na tabela que acabou de criar.

200

Page 206: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Próximas etapas:

3. Ir para o Métricas da tabela e escolha Ver todas as métricas turdwatch. No CloudWatch consola,escolher Registos para poder visualizar a saída do registo.

Próximas etapas:O AWS SAM O repositório de animação contém aplicações de exemplo adicionais para transferir eexperimentar com. Para aceder a este repositório, consulte AWS SAM exemplos de aplicações.

Processo Amazon S3 EventosCom esta aplicação de exemplo, desenvolve o que aprendeu nos exemplos anteriores e instala umaaplicação mais complexa. Esta aplicação consiste num Lambda função que é invocada por um AmazonS3 fonte de evento de carregamento de objeto. Este exercício mostra como aceder aos recursos AWS eefectuar chamadas de serviço AWS através de uma Lambda função.

Esta aplicação sem servidor processa eventos de criação de objetos em Amazon S3. Para cada imagemcarregada para um balde, Amazon S3 deteta o evento criado pelo objecto e invoca a Lambda função. OLambda função invoca Amazon Rekognition para detetar texto que está na imagem. Em seguida, guardaos resultados devolvidos por Amazon Rekognition em DynamoDB tabela.

Note

Com esta aplicação de exemplo, realiza os passos numa ordem ligeiramente diferente do quenos exemplos anteriores. O motivo para isto é que este exemplo requer que os recursos AWSsejam criados e as permissões IAM estejam configuradas antes pode testar o Lambda localmente.Vamos aproveitar AWS CloudFormation para criar os recursos e configurar as permissões para si.Caso contrário, terá de o fazer manualmente antes de poder testar o Lambda localmente.Uma vez que este exemplo é mais complicado, certifique-se de que está familiarizado com ainstalação das aplicações de exemplo anteriores antes de executar este.

Antes de começarCertifique-se de que concluiu a configuração necessária no Como instalar a CLI do AWS SAM (p. 3).

Etapa 1 Inicializar o aplicativoNesta seção, baixe o exemplo de aplicativo, que consiste em um modelo do AWS SAM e no código doaplicativo.

Como inicializar o aplicativo

1. Execute o seguinte comando em um prompt de comando da CLI do AWS SAM.

sam init \--location https://github.com/aws-samples/cookiecutter-aws-sam-s3-rekognition-dynamodb-python \--no-input

2. Revise o conteúdo do diretório criado pelo comando (aws_sam_ocr/):

• template.yaml – Define três recursos AWS que o Amazon S3 necessidades de aplicação:a Lambda função, um Amazon S3 balde e um DynamoDB tabela. O modelo também define osmapeamentos e permissões entre estes recursos.

• src/ diretório – Contém o Amazon S3 código de aplicação.

201

Page 207: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Etapa 2. Empacotar o aplicativo do

• SampleEvent.json – A fonte de evento de amostra, que é utilizada para testes locais.

Etapa 2. Empacotar o aplicativo doAntes de poder testar esta aplicação localmente, deve utilizar o AWS SAM CLI para criar um pacote deimplementação que utiliza para implementar a aplicação na nuvem AWS. Esta implementação cria osrecursos e permissões necessários da AWS que são necessários para testar a aplicação localmente.

Como criar um pacote de implantação do Lambda

1. Crie um bucket do S3 no local onde deseja salvar o código empacotado. Se você quiser usar umbucket do S3 existente, ignore esta etapa.

aws s3 mb s3://bucketname

2. Criar o pacote de implementação executando o seguinte package Comando de comando nainstrução de comando.

sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket bucketname

Especifica o novo ficheiro de modelo, packaged.yaml, ao implementar a aplicação no próximopasso.

Etapa 3 Implante o aplicativo do .Agora que criou o pacote de implementação, utiliza-o para implementar a aplicação na nuvem AWS. Emseguida, teste a aplicação ao invocar-la na nuvem AWS.

Para expandir a aplicação sem servidor para a nuvem AWS

• No AWS SAM CLI, utilize o deploy comando para implementar todos os recursos que definiu nomodelo.

sam deploy \ --template-file packaged.yaml \ --stack-name aws-sam-ocr \ --capabilities CAPABILITY_IAM \ --region us-east-1

No comando, o --capabilities o parâmetro permite a criação de turvação AWS para criar umafunção IAM.

AWS CloudFormation cria os recursos AWS definidos no modelo. Pode aceder aos nomes destesrecursos no AWS CloudFormation consola.

Para testar a aplicação sem servidor na nuvem AWS

1. Carregar uma imagem para o Amazon S3 que criou para esta aplicação de amostra.2. Abra o DynamoDB consola e encontre a tabela criada. Consulte a tabela para obter os resultados

devolvidos por Amazon Rekognition.

202

Page 208: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Etapa 4. Testar o aplicativo localmente

3. Verifique se o DynamoDB a tabela contém novos registos que contêm texto Amazon Rekognitionencontrados na imagem carregada.

Etapa 4. Testar o aplicativo localmenteAntes de poder testar a aplicação localmente, primeiro tem de recuperar os nomes dos recursos AWScriados por AWS CloudFormation.

• Recuperar o Amazon S3 nome da chave e nome do balde de AWS CloudFormation. Modificar oSampleEvent.json ao substituir os valores da chave do objecto, nome do balde e o lote ARN.

• Recuperar o DynamoDB nome da tabela. Este nome é utilizado para o seguinte sam local invokecomando.

Utilize o AWS SAM CLI para gerar uma amostra Amazon S3 e invocar o Lambda função:

TABLE_NAME=Table name obtained from AWS CloudFormation console sam local invoke --event SampleEvent.json

O TABLE_NAME= a parte define o DynamoDB nome da tabela. O --event especifica o ficheiro quecontém a mensagem do evento de teste para passar para o Lambda função.

Pode agora verificar se o esperado DynamoDB foram criados, com base nos resultados devolvidos porAmazon Rekognition.

Próximas etapas:O AWS SAM O repositório de animação contém aplicações de exemplo adicionais para transferir eexperimentar com. Para aceder a este repositório, consulte AWS SAM exemplos de aplicações.

203

Page 209: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS SAM Especificação

Referência do AWS SAM

AWS SAM EspecificaçãoO AWS SAM especificação é uma especificação de fonte aberta ao abrigo da licença Apache 2.0. Aversão actual do AWS SAM está disponível no Modelo de aplicativo sem servidor da AWS (AWS SAM)Especificação (p. 23).

AWS SAM modelos são uma extensão de AWS CloudFormation modelos. Para a referência completa paraAWS CloudFormation modelos, ver AWS CloudFormation Referência do modelo.

AWS SAMReferência de comandos da CLIO AWS SAM CLI é uma ferramenta de comando que funciona num AWS SAM modelo e código deaplicação. Com a CLI do AWS SAM, você pode invocar as funções do Lambda localmente, criar um pacotede implantação para seu aplicativo sem servidor, implantar seu aplicativo sem servidor na Nuvem AWS eassim por diante.

Pode utilizar o AWS SAM Comandos de EB para desenvolver, testar e implementar as suas aplicaçõessem servidor para a nuvem AWS. Seguem-se alguns exemplos de AWS SAM Comandos de CEM:

• sam init – Se for uma primeira vez AWS SAM Utilizador de TIA, pode executar o sam init semquaisquer parâmetros para criar uma aplicação Hello World. O comando gera um pré-configurado AWSSAM modelo e exemplo de código de aplicação no idioma que escolher.

• sam local invoke e sam local start-api – Utilize estes comandos para testar o código da suaaplicação localmente, antes de o implementar na nuvem AWS.

• sam logs – Utilize este comando para obter registos gerados pelo seu Lambda função. Isto pode ajudá-lo a testar e a depurar a sua aplicação depois de o ter implementado para a nuvem AWS.

• sam package – Utilize este comando para agrupar o seu código de candidatura e dependências paraum "pacote de implementação". O pacote de implementação é necessário para carregar a sua aplicaçãopara a nuvem AWS.

• sam deploy – Utilize este comando para expandir a sua aplicação sem servidor para a nuvem AWS.Cria os recursos AWS e define permissões e outras configurações definidas no AWS SAM modelo.

Modelos de política do AWS SAMAWS SAM permite que você escolha de uma lista de modelos de política para definir o escopo daspermissões de suas Lambda funções para os recursos que são usados pelo seu aplicativo.

Topics

• Modelo de aplicativo sem servidor da AWS (AWS SAM) Especificação (p. 23)• AWS SAMReferência de comandos da CLI (p. 205)• Modelos de política do AWS SAM (p. 221)

204

Page 210: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS SAMReferência de comandos da CLI

• Telemetria no AWS SAM CLI (p. 263)

AWS SAMReferência de comandos da CLIEsta secção é a referência para o AWS SAM Comandos de CEM.

Tópicos• construir sam (p. 205)• sam deploy (p. 207)• sam init (p. 209)• sam local gerar evento (p. 211)• sam local invoke (p. 212)• sam local start-api (p. 213)• sam local start-lambda (p. 215)• registos sam (p. 216)• sam package (p. 218)• sam publish (p. 219)• sam validate (p. 219)

construir samCria uma aplicação sem servidor e prepara-a para passos subsequentes no seu fluxo de trabalho, comotestar localmente a aplicação ou implementá-la na nuvem AWS.

O sam build o comando processa o seu AWS SAM o ficheiro do modelo, o código da aplicação equaisquer ficheiros e dependências específicas do idioma aplicáveis e cópias acumulam artefactosno formato e localização esperados pelos passos subsequentes no seu fluxo de trabalho. Especificadependências num ficheiro manifesto que inclua na sua aplicação, como requirements.txt parafunções Python, ou package.json para funções do Node.js.

Se um recurso incluir um Metadata atributo de recursos com um BuildMethod entrada, sambuild constrói esse recurso de acordo com o valor do BuildMethod entrada. Valores válidos paraBuildMethod são identificadores para um AWS Lambda tempo de execução, ou makefile:

• AWS Lambda identificador runtime. Construir o recurso contra uma Lambda runtime. Para a lista deidentificadores de tempo de execução suportados, consulte AWS Lambda tempos de execução.

• makefile. Tem de ter um makefile que inclui um objetivo de construção designadobuild-resource-logical-id. Neste caso, sam build executa os comandos do alvo deconstrução.

Pode utilizar o Metadata atributo de recursos com um BuildMethod entrada para criar camadas etempos de fluxo personalizados. Para obter informações sobre as camadas de construção, consulteCamadas de construção (p. 171). Para obter informações sobre o desenvolvimento de tempos defuncionamento personalizados, consulte Construir tempos de runtimes personalizados (p. 172).

Para ver um exemplo de ponta a ponta que utilize este comando, incluindo testes locais e a implementaçãopara a nuvem AWS, consulte Tutorial Implementar uma aplicação "Hello World" (p. 12). O sam build fazparte do Etapa 2. Construa a sua aplicação (p. 14).

Uso

205

Page 211: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

construir sam

sam build [OPTIONS] [RESOURCE_LOGICAL_ID]

Exemplos:

To use this command, update your SAM template to specify the pathto your function's source code in the resource's Code or CodeUri property.

To build on your workstation, run this command in folder containingSAM template. Built artifacts will be written to .aws-sam/build folder$ sam build To build inside a AWS Lambda like Docker container$ sam build --use-container To build & run your functions locally$ sam build && sam local invoke To build and package for deployment$ sam build && sam package --s3-bucket <bucketname>

To build the 'MyFunction' resource$ sam build MyFunction

Opções: | .

Opção Description (Descrição)

-b, --build-dirDIRECTORY

O caminho para uma pasta onde os artefactos construídos sãoarmazenados. Este diretório e todo o seu conteúdo é removido com estaopção.

-s, --base-dirDIRECTORY

Resolve os caminhos relativos para o código fonte da funçãorelativamente a esta pasta. Utilize esta opção se o AWS SAM e o seucódigo fonte não estão na mesma pasta. Por predefinição, os caminhosrelativos são resolvidos em relação à localização do modelo.

-u, --use-container Se as suas funções dependem dos pacotes que têm tendênciascompiladas de forma nativa, utilize esta bandeira para construir a suafunção dentro de um AWS Lambda- como o recipiente do acoplador.

-m, --manifest PATH O caminho para um ficheiro de manifesto de dependência personalizada(por exemplo, pacote.json) para utilizar em vez da predefinição.

-t, --template PATH O AWS SAM ficheiro do modelo [predefinido: modelo.[yaml|yml]].

--parameter-overrides : Optional. Uma cadeia que contém AWS CloudFormation sobreposiçõesde parâmetro, codificadas como pares de valor-chave. Utilize o mesmoformato que o AWS CLI—por exemplo, 'ParameterKey=KeyPairName,ParameterValue=MyKey ParameterKey=InstanceType,ParameterValue=t1.micro'.

--skip-pull-image Especifica se o comando deve saltar para baixo a última imagem doacoplador para o Lambda runtime.

--docker-network TEXT Especifica o nome ou ID de uma rede do acoplador existente que LambdaOs recipientes do acoplador devem ligar-se a, juntamente com a rede deponte predefinida. Se não for especificado, os contêineres do Lambda seconectam somente à rede de Docker de ponte padrão.

206

Page 212: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam deploy

Opção Description (Descrição)

--profile TEXT Selecciona um perfil específico do seu ficheiro de credencial para obtercredenciais AWS.

--region TEXT Define a região AWS do serviço (por exemplo, us-leste-1).

--debug Activa o registo de depuração para imprimir a mensagem de depuraçãogerada pelo AWS SAM CLI.

--help Mostra esta mensagem e sai.

sam deployImplementa um AWS SAM aplicação.

Este comando vem agora com um modo interactivo orientado, que pode ativar especificando o --guidedparâmetro. O modo interactivo percorre os parâmetros necessários para a implementação, fornece opçõespredefinidas e guarda estas opções num ficheiro de configuração na pasta do projecto. Pode executarimplementações subsequentes da sua aplicação simplesmente executando sam deploy e os parâmetrosnecessários serão recuperados do AWS SAM Ficheiro de configuração do PROFESS.

A implementar Lambda funções através de AWS CloudFormation requer um Amazon S3 para o Lambdapacote de implementação. AWS SAM A IGN cria agora e gere isto Amazon S3 para si.

Uso

sam deploy [OPTIONS] [ARGS]...

Opções: | .

Opção Description (Descrição)

-g, --guided Especifique este sinalizador para permitir AWS SAM para guiá-lo atravésda implementação utilizando as indicações orientadas.

Para obter mais informações sobre definições que são opcionalmentearmazenadas ao especificar este parâmetro, consulte AWS SAM Config.CLI (p. 220)

--template-file PATH O caminho onde o seu AWS SAM o modelo está localizado. Predefinição:modelo.[yaml|yml].

--stack-name TEXT O nome do AWS CloudFormation pilha que está a implementar para.Se especificar uma pilha existente, o comando actualiza a pilha. Seespecificar uma nova pilha, o comando cria-o. Obrigatório

--s3-bucket TEXT O nome do Amazon S3 balde onde os artefactos são referenciados no seumodelo. Isto é necessário para as implementações de modelos com umtamanho superior a 51.200 bytes.

--s3-prefix TEXT Prefixo adicionado ao nome dos artefactos que são carregados para oAmazon S3 balde. O nome do prefixo é um nome do caminho (nome dapasta) para o Amazon S3 balde.

--capabilities LIST Uma lista de capacidades que deve especificar para permitir AWSCloudFormation para criar determinadas pilhas. Alguns modelos de

207

Page 213: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam deploy

Opção Description (Descrição)pilha podem incluir recursos que podem afetar permissões na suaconta AWS, por exemplo, criando novos AWS Identity and AccessManagement (IAM) utilizadores. Para essas pilhas, você deve confirmarexplicitamente seus recursos especificando esse parâmetro. Os únicosvalores válidos são CAPABILITY_IAM e CAPABILITY_NAMED_IAM.Se tiver IAM recursos, pode especificar qualquer capacidade. Setiver IAM recursos com nomes personalizados, tem de especificarCAPABILITY_NAMED_IAM. Se não especificar este parâmetro, esta açãodevolve um InsufficientCapabilities erro.

--region TEXT A região AWS para expandir (por exemplo, us-leste-1).

--profile TEXT Selecione um perfil específico do seu ficheiro de credencial para obtercredenciais AWS.

--kms-key-id TEXT A ID de um AWS KMS chave utilizada para encriptar artefactos que estãoem repouso no Amazon S3 balde.

--force-upload Substituir ficheiros existentes no Amazon S3 balde. Especifique estesinalizador para carregar artefactos mesmo que correspondam aartefactos existentes no Amazon S3 balde.

--no-execute-changeset

Indica se pretende executar o conjunto de alterações. Especifique estesinalizador se pretender ver as alterações da sua pilha antes de executaro conjunto de alterações. Este comando cria um AWS CloudFormationaltere o conjunto e, em seguida, saia sem executar o conjunto dealterações. Se quiser executar a alteração, as alterações à pilha podemser efectuadas executando o mesmo comando sem este sinalizador.

--role-arn TEXT O Nome de Recursos Amazon (ARN) de um AWS Identity and AccessManagement (IAM) função que AWS CloudFormation assume ao executaro conjunto de alterações.

--fail-on-empty-changeset | --no-fail-on-empty-changeset

Especifique se pretende devolver um código de saída não zero se nãohouver alterações a serem feitas na pilha. O comportamento predefinido édevolver um código de saída não zero.

--confirm-changeset| --no-confirm-changeset

Pedir para confirmar se o conjunto de alterações calculado deve serimplementado por SAM CLI.

--use-json JSON de saída para o AWS CloudFormation modelo. YLMA é utilizadopor predefinição.

--metadata Um mapa de metadados para anexar a todos os artefactos que sãoreferenciados no seu modelo. : Optional.

--notification-arnsLIST

Amazon Simple Notification Service tópicos Nomes de Recursos Amazon(arcos) que AWS CloudFormation associados com a pilha.

--tags Uma lista de etiquetas para associar à pilha que é criada ou atualizada.AWS CloudFormation também propagam estas etiquetas para recursos napilha se o recurso o suportar.

208

Page 214: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam init

Opção Description (Descrição)

--parameter-overrides Uma cadeia que contém AWS CloudFormation sobreposições deparâmetro codificadas como teclas=pares de valor. Utilize o mesmoformato que o AWS CLI. Por exemplo, ParameterKey=KeyPairNameParameterValue=MyKey ParameterKey=InstanceTypeParameterValue=t1.micro.

--debug Activa o registo de depuração.

--help Mostra esta mensagem e sai.

sam initInicializa uma aplicação sem servidor com um AWS SAM modelo. O modelo fornece uma estrutura depastas para as suas funções Lambda e está ligado a uma fonte de evento como, por exemplo, API, S3baldes, ou DynamoDB tabelas. Esta aplicação inclui tudo o que precisa para começar e, eventualmente,estender-se a uma aplicação de produção.

Uso

sam init [OPTIONS]

Note

Com AWS SAM versão 0.30.0 ou posterior, pode inicializar a sua aplicação utilizando um de doismodos: 1) Fluxo de trabalho interactivo ou 2) Fornecer todos os parâmetros necessários.

• Fluxo de trabalho interactivo: Através do fluxo de trabalho de inicialização interactiva podeintroduzir 1) o nome do seu projecto, o runtime preferido e o ficheiro modelo, ou 2) a localizaçãode um modelo personalizado.

 • Fornecer parâmetros: Forneça todos os parâmetros necessários.

Se fornecer um subconjunto de parâmetros necessários, ser-lhe-á solicitado a informaçãoadicional necessária.

Exemplos:

Initializes a new SAM project with required parameters passed as parameters

sam init --runtime python3.7 --dependency-manager pip --app-template hello-world --name sam-app

Initializes a new SAM project using custom template in a Git/Mercurial repository

# gh being expanded to github urlsam init --location gh:aws-samples/cookiecutter-aws-sam-python

sam init --location git+ssh://[email protected]/aws-samples/cookiecutter-aws-sam-python.git

sam init --location hg+ssh://[email protected]/repo/template-name

# Initializes a new SAM project using custom template in a Zipfile

sam init --location /path/to/template.zip

209

Page 215: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam init

sam init --location https://example.com/path/to/template.zip

# Initializes a new SAM project using custom template in a local path

sam init --location /path/to/template/folder

Opções: | .

Opção Description (Descrição)

--no-interactive Desactive o pedido interativo para os parâmetros iniciais e falhe se osvalores necessários estiverem em falta.

-l, --location TEXT O modelo ou local de aplicação (Git, Mercurial, HTTP/HTTPS, ZIP, path).

Este parâmetro é necessário se --no-interactive é especificado e --runtime, --name, e --app-template não são fornecidos.

Para repositórios de Git, tem de utilizar a localização da raiz dorepositório.

-r, --runtime[python2.7 |nodejs6.10 | ruby2.5| java8 | python3.7| nodejs8.10 |dotnetcore2.0| nodejs10.x |dotnetcore2.1 |dotnetcore1.0 |python3.6 | go1.x]

O Runtime da sua aplicação.

Este parâmetro é necessário se --no-interactive é especificado e --location não é fornecido.

-d, --dependency-manager [gradle | mod| maven | bundler |npm | cli-package |pip]

Gestor de dependência do seu runtime Lambda

-o, --output-dir PATH O local onde a aplicação inicializada é saída.

-n, --name TEXT O nome do seu projeto a ser gerado como uma pasta.

Este parâmetro é necessário se --no-interactive é especificado e --location não é fornecido.

--app-template TEXT Identificador do modelo de aplicação gerido que pretende utilizar. Se nãotiver a certeza, ligue para 'sam init' sem opções para um fluxo de trabalhointeractivo.

Este parâmetro é necessário se --no-interactive é especificado e --location não é fornecido.

Este parâmetro só está disponível no SAM CLI versão 0.30.0 ou posterior.A especificação deste parâmetro com uma versão anterior resultará numerro.

--no-input Desactiva os valores de glicemia e aceita os valores predefinidosdefinidos na configuração do modelo.

210

Page 216: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam local gerar evento

Opção Description (Descrição)

--debug Activa o registo de depuração.

-h, --help Mostra esta mensagem e sai.

sam local gerar eventoGera os carregamentos de amostras de diferentes fontes de eventos, tais como Amazon S3, Amazon APIGateway, e Amazon SNS. Estes carregamentos contêm as informações que as fontes de eventos enviampara as suas funções Lambda.

Uso

sam local generate-event [OPTIONS] COMMAND [ARGS]...

Exemplos:

Generate the event that S3 sends to your Lambda function when a new object is uploadedsam local generate-event s3 [put/delete]

# You can even customize the event by adding parameter flags. To find which flags apply to your command,run:

sam local generate-event s3 [put/delete] --help

# Then you can add in those flags that you wish to customize using

sam local generate-event s3 [put/delete] --bucket <bucket> --key <key>

# After you generate a sample event, you can use it to test your Lambda function locallysam local generate-event s3 [put/delete] --bucket <bucket> --key <key> | sam local invoke -e - <function logical id>

Opções: | .

Opção Description (Descrição)

--help Mostra esta mensagem e sai.

Comandos

• alexa-skills-kit

• alexa-smart-home

• apigateway

• batch

• cloudformation

• cloudfront

• cloudwatch

• codecommit

211

Page 217: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam local invoke

• codepipeline

• cognito

• config

• dynamodb

• kinesis

• lex

• rekognition

• s3

• ses

• sns

• sqs

• stepfunctions

sam local invokeInvoca um local Lambda função uma vez e quits após a invocação completar.

Isto é útil para desenvolver funções sem servidor que lidam com eventos assíncronos (tais como AmazonS3 ou Amazon Kinesis eventos). Também pode ser útil se pretender compor um script dos casos de teste.O corpo do evento pode ser aprovado utilizando o --event parâmetro. A saída de execução (registos,etc.) é a saída para stderre o resultado da função Lambda é o resultado para stdout.

Uso

sam local invoke [OPTIONS] [FUNCTION_IDENTIFIER]

Opções: | .

Opção Description (Descrição)

-e, --event PATH O ficheiro JSON que contém dados de eventos passados à funçãoLambda quando é invocado. Se não especificar esta opção, não éassumido qualquer evento. Para introduzir JSON de stdin tem de passarno valor '-'.

--no-event Invoca a função com um evento vazio.

-t, --template PATH O AWS SAM ficheiro do modelo [predefinido: modelo.[yaml|yml]].

-n, --env-vars PATH O ficheiro JSON que contém valores para as variáveis de ambiente dafunção Lambda. Para obter mais informações sobre os ficheiros variáveisdo ambiente, consulte Ficheiro de variável de ambiente (p. 175).

--parameter-overrides : Optional. Uma cadeia que contém AWS CloudFormationsobreposições de parâmetro codificadas como pares devalor-chave. Utilize o mesmo formato que o AWS CLI—porexemplo, "parameterkey=keypairname, parametervalue=mykeyparameterkey=instancetype,parametervalue=t1.micro'.

-d, --debug-port TEXT Quando especificado, inicia o recipiente da função Lambda em mododebug e expõe esta porta no anfitrião local.

212

Page 218: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam local start-api

Opção Description (Descrição)

--debugger-path TEXT O caminho do anfitrião para um depurador que será montado norecipiente Lambda.

--debug-args TEXT Argumentos adicionais a serem passados para o depurador.

-v, --docker-volume-basedir TEXT

A localização do diretório de base onde o AWS SAM existe um ficheiro.Se o acoplador estiver a funcionar numa máquina remota, deve montaro caminho onde AWS SAM o ficheiro existe na máquina do acoplador emodifique este valor para corresponder à máquina remota.

--docker-network TEXT O nome ou ID de uma rede do acoplador existente que os recipientesdo acoplador Lambda devem ligar, juntamente com a rede de pontepredefinida. Se não for especificado, os recipientes Lambda apenas seligam à rede de acoplador de ponte predefinida.

-l, --log-file TEXT O ficheiro de registo para enviar registos runtime para.

--layer-cache-basedirDIRECTORY

Especifica a base de local onde as camadas que o seu modelo utiliza sãotransferidas para.

--skip-pull-image Especifica se o CLI deve ignorar a última imagem do acoplador para oLambda runtime.

--force-image-build Especifica se a CLI deve reconstruir a imagem utilizada para invocarfunções com camadas.

--profile TEXT O perfil de credenciais AWS para utilizar.

--region TEXT Define a região AWS do serviço (por exemplo, us-leste-1).

--debug Activa o registo de depuração.

--help Mostra esta mensagem e sai.

sam local start-apiPermite-lhe executar a sua aplicação sem servidor localmente para um desenvolvimento e teste rápidos.Quando executa este comando num directório que contém as suas funções sem servidor e o seu AWSSAM modelo, cria um servidor HTTP local que aloja todas as suas funções.

Quando é acedido (através de um browser, CLI, etc.), inicia um contentor do acoplador localmente parainvocar a função. Lê a propriedade do codeuri do AWS::Serverless::Function para encontrar ocaminho no seu sistema de ficheiros que contém o Lambda código de função. Este pode ser o directórioraiz do projecto para idiomas interpretados como Node.js and Python, ou um directório de construção quearmazena os seus artefactos compilados ou um ficheiro de Arquivo Java (JAR).

Se estiver a utilizar um idioma interpretado, as alterações locais estão disponíveis imediatamente norecipiente do acoplador em cada invocar. Para idiomas ou projetos mais compilados que requerem suportede embalagem complexo, recomendamos que execute a sua própria solução de construção e ponto AWSSAM para o directório ou ficheiro que contém os artefactos de construção.

Para ver um exemplo de ponta a ponta que utilize este comando, consulte Tutorial Implementar umaaplicação "Hello World" (p. 12). O sam local start-api faz parte do Etapa 4. Testar a sua candidaturalocalmente (opcional) (p. 17).

Uso

213

Page 219: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam local start-api

sam local start-api [OPTIONS]

Opções: | .

Opção Description (Descrição)

--host TEXT O nome de anfitrião ou endereço IP local para se ligar (predefinição:'127.0.0.1').

-p, --port INTEGER O número da porta local para ouvir (predefinição: "3000").

-s, --static-dir TEXT Quaisquer ficheiros de ativos estáticos (por exemplo, CSS/javascript/HTML) localizados neste diretório são apresentados em /.

-t, --template PATH O AWS SAM ficheiro do modelo [predefinido: modelo.[yaml|yml]].

-n, --env-vars PATH O ficheiro JSON que contém valores para as variáveis de ambiente dafunção Lambda.

--parameter-overrides : Optional. Uma cadeia que contém AWS CloudFormationsobreposições de parâmetro codificadas como pares devalor-chave. Utilize o mesmo formato que o AWS CLI—porexemplo, "parameterkey=keypairname, parametervalue=mykeyparameterkey=instancetype,parametervalue=t1.micro'.

-d, --debug-port TEXT Quando especificado, inicia o Lambda colocar o recipiente no modo dedepuração e expõe esta porta no anfitrião local.

--debugger-path TEXT O caminho do anfitrião para um depurador que será montado norecipiente Lambda.

--debug-args TEXT Argumentos adicionais a serem passados para o depurador.

-v, --docker-volume-basedir TEXT

A localização do diretório de base onde o AWS SAM existe um ficheiro.Se o acoplador estiver a funcionar numa máquina remota, deve montaro caminho onde AWS SAM o ficheiro existe na máquina do acoplador emodifique este valor para corresponder à máquina remota.

--docker-network TEXT O nome ou ID de uma rede do acoplador existente que o Lambda Osrecipientes do acoplador devem ligar-se a, juntamente com a rede deponte predefinida. Se isto não for especificado, o Lambda os contentoressó se ligam à rede do acoplador de ponte predefinida.

-l, --log-file TEXT O ficheiro de registo para enviar registos runtime para.

--layer-cache-basedirDIRECTORY

Especifica a base de local onde as camadas as suas utilizações domodelo são transferidas para.

--skip-pull-image Especifica se o CLI deve ignorar a última imagem do acoplador para oLambda runtime.

--force-image-build Especifica se CLI deve reconstruir a imagem utilizada para invocarfunções com camadas.

--profile TEXT O perfil de credenciais AWS para utilizar.

--region TEXT Define a região AWS do serviço (por exemplo, us-leste-1).

--debug Activa o registo de depuração.

214

Page 220: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam local start-lambda

Opção Description (Descrição)

--help Mostra esta mensagem e sai.

sam local start-lambdaPermite-lhe invocar programaticamente a sua função Lambda localmente utilizando o AWS CLI ou sdks.Este comando inicia um parâmetro de avaliação local que emula AWS Lambda. Pode executar os seustestes automatizados contra este parâmetro de avaliação Lambda local. Quando envia uma expressãopara este parâmetro de avaliação utilizando o AWS CLI ou SDK, executa localmente a função Lambdaespecificada no pedido.

Uso

sam local start-lambda [OPTIONS]

Exemplos:

# SETUP# ------# Start the local Lambda endpoint by running this command in the directory that contains your AWS SAM template.

sam local start-lambda

# USING AWS CLI# -------------# Then, you can invoke your Lambda function locally using the AWS CLI

aws lambda invoke --function-name "HelloWorldFunction" --endpoint-url "http://127.0.0.1:3001" --no-verify-ssl out.txt

# USING AWS SDK# -------------# You can also use the AWS SDK in your automated tests to invoke your functions programatically.# Here is a Python example:## self.lambda_client = boto3.client('lambda',# endpoint_url="http://127.0.0.1:3001",# use_ssl=False,# verify=False,# config=Config(signature_version=UNSIGNED,# read_timeout=0,# retries={'max_attempts': 0}))# self.lambda_client.invoke(FunctionName="HelloWorldFunction")

Opções: | .

Opção Description (Descrição)

--host TEXT O nome de anfitrião ou endereço IP local para se ligar (predefinição:'127.0.0.1').

-p, --port INTEGER O número da porta local para ouvir (predefinição: '3001').

-t, --template PATH O AWS SAM ficheiro do modelo [predefinido: modelo.[yaml|yml]].

215

Page 221: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

registos sam

Opção Description (Descrição)

-n, --env-vars PATH O ficheiro JSON que contém valores para as variáveis de ambiente dafunção Lambda.

--parameter-overrides : Optional. Uma cadeia que contém AWS CloudFormationsobreposições de parâmetro codificadas como pares devalor-chave. Utilize o mesmo formato que o AWS CLI—porexemplo, "parameterkey=keypairname, parametervalue=mykeyparameterkey=instancetype,parametervalue=t1.micro'.

-d, --debug-port TEXT Quando especificado, inicia o recipiente da função Lambda em mododebug e expõe esta porta no anfitrião local.

--debugger-path TEXT O caminho do anfitrião para um depurador a ser montado no recipienteLambda.

--debug-args TEXT Argumentos adicionais a serem passados para o depurador.

-v, --docker-volume-basedir TEXT

A localização do diretório de base onde o AWS SAM existe um ficheiro.Se o acoplador estiver a funcionar numa máquina remota, deve montaro caminho onde AWS SAM o ficheiro existe na máquina do acoplador emodifique este valor para corresponder à máquina remota.

--docker-network TEXT O nome ou ID de uma rede do acoplador existente que os recipientesdo acoplador Lambda devem ligar, juntamente com a rede de pontepredefinida. Se for especificado, os recipientes Lambda só se ligam à redede acoplador de ponte predefinida.

-l, --log-file TEXT O ficheiro de registo para enviar registos runtime para.

--layer-cache-basedirDIRECTORY

Especifica a base de local onde as camadas que o seu modelo utiliza sãotransferidas para.

--skip-pull-image Especifica se o CLI deve ignorar a última imagem do acoplador para oLambda runtime.

--force-image-build Especifique se a CLI deve reconstruir a imagem utilizada para invocarfunções com camadas.

--profile TEXT O perfil de credenciais AWS para utilizar.

--region TEXT Define a região AWS do serviço (por exemplo, us-leste-1).

--debug Activa o registo de depuração.

--help Mostra esta mensagem e sai.

registos samRecupera registos que são gerados pela função Lambda.

Quando as suas funções fazem parte de um AWS CloudFormation empilhar, pode obter registos utilizandoa ID lógica da função quando especificar o nome da pilha.

Uso

sam logs [OPTIONS]

216

Page 222: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

registos sam

Exemplos:

sam logs -n HelloWorldFunction --stack-name mystack

# Or, you can fetch logs using the function's name.sam logs -n mystack-HelloWorldFunction-1FJ8PD36GML2Q

# You can view logs for a specific time range using the -s (--start-time) and -e (--end-time) optionssam logs -n HelloWorldFunction --stack-name mystack -s '10min ago' -e '2min ago'

# You can also add the --tail option to wait for new logs and see them as they arrive.sam logs -n HelloWorldFunction --stack-name mystack --tail

# Use the --filter option to quickly find logs that match terms, phrases or values in your log events.sam logs -n HelloWorldFunction --stack-name mystack --filter "error"

Opções: | .

Opção Description (Descrição)

-n, --name TEXT O nome do seu Lambda função. Se esta função fizer parte de um AWSCloudFormation , esta pode ser a ID lógica do recurso de função no AWSCloudFormation/AWS SAM modelo. [obrigatório]

--stack-name TEXT O nome do AWS CloudFormation de que a função faz parte de.

--filter TEXT Permite especificar uma expressão para localizar rapidamente registosque correspondam aos termos, frases ou valores nos seus eventos deregisto. Esta pode ser uma palavra-chave simples (por exemplo, "erro")ou um padrão suportado por Amazon CloudWatch Logs. Para a sintaxe,consulte o Amazon CloudWatch Logs documentação.

-s, --start-time TEXT Recupera registos a partir de agora. O tempo pode ser valores relativoscomo '5min atrás', 'ontem' ou um carimbo de data/hora formatado como'2018-01-01 10:10:10'. Está predefinido para '10 minutos'.

-e, --end-time TEXT Recupera registos até agora. O tempo pode ser valores relativos como'5min atrás', 'amanhã' ou um carimbo de data/hora formatado como'2018-01-01 10:10:10'.

-t, --tail Aumenta a saída do registo. Isto ignora o argumento do tempo final econtinua a obter registos à medida que estes ficam disponíveis.

--profile TEXT Selecciona um perfil específico do seu ficheiro de credencial para obtercredenciais AWS.

--region TEXT Define a região AWS do serviço (por exemplo, us-leste-1).

--debug Activa o registo de depuração para imprimir mensagens de depuraçãogeradas pelo AWS SAM CLI.

--help Mostra esta mensagem e sai.

217

Page 223: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam package

sam packageEmpacota um aplicativo do AWS SAM. O comando cria um arquivo ZIP do código e das dependênciase faz upload dele para o Amazon S3. Depois devolve uma cópia do seu AWS SAM modelo, substituirreferências a artefactos locais com o Amazon S3 local onde o comando carregou os artefactos.

Note

sam deploy (p. 207) agora executa implicitamente a funcionalidade de sam package. Podeutilizar o sam deploy (p. 207) comando directamente para embalar e implementar a suacandidatura.

Uso

sam package [OPTIONS] [ARGS]...

Opções: | .

Opção Description (Descrição)

--template-file PATH O caminho onde o seu AWS SAM o modelo está localizado. Predefinição:modelo.[yaml|yml].

--s3-bucket TEXT O nome do balde S3 onde este comando carrega os artefactos que sãoreferenciados no seu modelo. Obrigatório

--s3-prefix TEXT Prefixo adicionado ao nome dos artefactos que são carregados para oAmazon S3 balde. O nome do prefixo é um nome do caminho (nome dapasta) para o Amazon S3 balde.

--kms-key-id TEXT A ID de um AWS KMS chave utilizada para encriptar artefactos que estãoem repouso no Amazon S3 balde.

--output-template-file PATH

O caminho para o ficheiro onde o comando escreve o modelo embalado.Se não especificar um caminho, o comando escreve o modelo para asaída padrão.

--use-json JSON de saída para o AWS CloudFormation modelo. YLMA é utilizadopor predefinição.

--force-upload Substituir ficheiros existentes no Amazon S3 balde. Especifique estesinalizador para carregar artefactos mesmo que correspondam aartefactos existentes no Amazon S3 balde.

--metadata Um mapa de metadados para anexar a todos os artefactos que sãoreferenciados no seu modelo. : Optional.

--profile TEXT Selecione um perfil específico do seu ficheiro de credencial para obtercredenciais AWS.

--region TEXT Define a região AWS do serviço (por exemplo, us-leste-1).

--debug Activa o registo de depuração.

--help Mostra esta mensagem e sai.

218

Page 224: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

sam publish

Note

Se o AWS SAM modelo contém um Metadata para o serverlessrepo e o LicenseUrl ouReadmeUrl as propriedades contêm referências a ficheiros locais, tem de atualizar AWS CLI paraa versão 1.16.77 ou posterior. Para mais informações sobre o Metadata secção de AWS SAMmodelos e aplicações de publicação com AWS SAM CLI, ver Publicar aplicações sem servidorutilizando o AWS SAM CLI (p. 193).

sam publishPublicar um AWS SAM aplicação para AWS Serverless Application Repository. Este comando substituiAWS SAM e publica a aplicação na região especificada.

Este comando espera que o AWS SAM modelo para incluir Metadata contém metadados de candidaturanecessários para publicação. Além disso, estas propriedades devem incluir referências a Amazon S3baldes para LicenseUrl e ReadmeUrl valores e não referências a ficheiros locais. Para mais detalhessobre o Metadata secção do AWS SAM modelo, consulte Publicar aplicações sem servidor utilizando oAWS SAM CLI (p. 193).

Este comando cria a aplicação como privada por predefinição, pelo que deve partilhar a aplicação antesde outras contas AWS poderem ver e implementar a aplicação. Para mais informações sobre a partilhade aplicações, consulte Utilizar políticas baseadas em recursos para o AWS Serverless ApplicationRepository.

Uso

sam publish [OPTIONS]

Exemplos:

# To publish an applicationsam publish --template packaged.yaml --region us-east-1

Opções: | .

Opção Description (Descrição)

-t, --template PATH Ficheiro de modelo AWS SAM [predefinição: modelo.[yaml|yml]].

--semantic-versionTEXT

: Optional. A versão semântica da aplicação fornecida por este parâmetrosobrepõe-se à versão semântica no Metadata do ficheiro modelo. https://semver.org/

--profile TEXT Selecione um perfil específico do seu ficheiro de credencial para obtercredenciais AWS.

--region TEXT Define a região AWS do serviço (por exemplo, us-leste-1).

--debug Activa o registo de depuração.

--help Mostra esta mensagem e sai.

sam validateVerifica se um AWS SAM o ficheiro do modelo é válido.

Uso

219

Page 225: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS SAM Config. CLI

sam validate [OPTIONS]

Opções: | .

Opção Description (Descrição)

-t, --template PATH O AWS SAM ficheiro do modelo [predefinido: modelo.[yaml|yml]].

--profile TEXT Selecciona um perfil específico do seu ficheiro de credencial para obtercredenciais AWS.

--region TEXT Define a região AWS do serviço (por exemplo, us-leste-1).

--debug Activa o registo de depuração.

--help Mostra esta mensagem e sai.

AWS SAM Config. CLIO AWS SAM O CLI suporta agora um ficheiro de configuração ao nível do projecto que guarda osparâmetros predefinidos para AWS SAM comandos. Este ficheiro de configuração armazena osparâmetros a utilizar para execuções de comandos. Se os parâmetros necessários estiverem disponíveisno ficheiro de configuração, pode executar comandos sem fornecer todos os parâmetros de execução.

Por exemplo, ao executar o sam deploy --guided comando, AWS SAM O EMC adicionaautomaticamente os parâmetros necessários no ficheiro de configuração. Posteriormente, pode executarsam deploy sem parâmetros e os valores serão obtidos a partir do ficheiro de configuração.

Config. config. config.O ficheiro de configuração para um projeto deve ser criado como samconfig.toml no directório raiz doseu projecto. Se executar um comando como sam deploy --guided este ficheiro será criado para si.Estes ficheiros são escritos no formato TOML: https://github.com/toml-lang/toml.

ExampleEis um exemplo AWS SAM Ficheiro de configuração de PROFESS criado ao utilizar o sam deploy --guided comando:

version=0.1 [default.deploy.parameters] region = "us-west-2" stack_name = "my-app-stack" capabilities = "CAPABILITY_IAM" s3_bucket = "my-source-bucket"

Optionsregion

Defina a região que pretende implementar para. Se omitir a região, então AWS SAM O CLI tentaráresolver a região através dos perfis AWS e, em seguida, as variáveis do ambiente.

220

Page 226: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorModelos de política do AWS SAM

stack_name

O nome do AWS CloudFormation que está a distribuir para.capabilities

Em alguns casos, tem de reconhecer explicitamente que o seu modelo de pilha contém determinadascapacidades para que a formação da AWS crie a pilha. Para obter mais informações, consulteCreateChangeSet no AWS CloudFormation API Reference.

Os valores válidos são iguais aos createchangeset AWS CloudFormation API.

Valores válidos: CAPABILITY_IAM | CAPABILITY_NAMED_IAM | CAPABILITY_AUTO_EXPAND

Valor padrão: CAPABILITY_IAMs3_bucket

O nome do balde S3 utilizado para a implementação de artefactos para sam deploy comando. Podeutilizar o seu Amazon S3 ao fornecer o seu próprio valor aqui.

Modelos de política do AWS SAMAWS SAM permite que você escolha de uma lista de modelos de política para definir o escopo daspermissões de suas Lambda funções para os recursos que são usados pelo seu aplicativo.

AWS SAM aplicações no AWS Serverless Application Repository que usam modelos de políticas nãorequerem quaisquer confirmações especiais de clientes para implementar a aplicação do AWS ServerlessApplication Repository.

Se deseja solicitar um novo modelo de política a ser adicionado, faça o seguinte:

1. Enviar um pedido de pull-pull em relação ao ficheiro de origem da apólice_modelos.json no develop daAWS SAM projeto github. Pode encontrar o ficheiro de origem em política_modelos.json no website degithub.

2. Envie um problema no projeto AWS SAM do GitHub que inclua os motivos da sua solicitação pull e umlink para a solicitação. Utilize esta ligação para enviar um novo problema: Modelo de aplicação semservidor AWS: Problemas

SyntaxPara cada modelo de apólice que especificar no seu AWS SAM ficheiro de modelo, tem sempre deespecificar um objeto que contém os valores do espaço reservado do modelo da apólice. Se um modelo deapólice não necessitar de quaisquer valores de marcador de posição, tem de especificar um objecto vazio.

YAML

MyFunction: Type: AWS::Serverless::Function Properties: Policies: - PolicyTemplateName1: # Policy template with placeholder value Key1: Value1 - PolicyTemplateName2: {} # Policy template with no placeholder value

221

Page 227: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Examples

ExamplesExemplo: = 1. Modelo de política com valores do espaçoreservadoO exemplo a seguir mostra que o modelo de política SQSPollerPolicy (p. 227) espera um QueueNamecomo recurso. O AWS SAM o modelo recupera o nome do "MyQueue" Amazon SQS fila, que pode criar namesma aplicação ou solicitada como um parâmetro para a aplicação.

MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - SQSPollerPolicy: QueueName: !GetAtt MyQueue.QueueName

Exemplo: = 2. Modelo de política sem valores do marcador deposiçãoO exemplo a seguir contém o modelo de política CloudWatchPutMetricPolicy (p. 228), que não temvalores de espaços reservados.

Note

Mesmo que não existam valores de marcador de posição, tem de especificar um objecto vazio,caso contrário irá ocorrer um erro.

MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - CloudWatchPutMetricPolicy: {}

Tabela de modelos de políticasSegue-se uma tabela dos modelos de políticas disponíveis.

Modelo depolítica

Description (Descrição)

SQSPollerPolicy (p. 227)Dá permissão para consultar um AmazonSimple Queue Service (Amazon SQS) fila.

LambdaInvokePolicy (p. 228)Dá permissão para invocar um AWS Lambdafunção, alias ou versão.

222

Page 228: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Tabela de modelos de políticas

Modelo depolítica

Description (Descrição)

CloudWatchDescribeAlarmHistoryPolicy (p. 228)Dá permissão para descrever CloudWatchhistórico de alarmes.

CloudWatchPutMetricPolicy (p. 228)Dá permissão para enviar métricas paraCloudWatch.

EC2DescribePolicy (p. 229)Dá permissão para descrever Amazon ElasticCompute Cloud (Amazon EC2) instâncias.

DynamoDBCrudPolicy (p. 229)Permite criar, ler, atualizar e eliminarpermissões para um Amazon DynamoDBtabela.

DynamoDBReadPolicy (p. 230)Fornece permissão só de leitura a umDynamoDB tabela.

DynamoDBWritePolicy (p. 230)Fornece permissão apenas de escrita paraDynamoDB tabela.

DynamoDBReconfigurePolicy (p. 231)Dá permissão para reconfigurar umDynamoDB tabela.

SESSendBouncePolicy (p. 231)Dá permissão de sendbounce a um AmazonSimple Email Service (Amazon SES)identidade.

ElasticsearchHttpPostPolicy (p. 232)Fornece autorização POST para AmazonElasticsearch Service.

S3ReadPolicy (p. 232)Fornece permissão só de leitura a objetosnum Amazon Simple Storage Service(Amazon S3) pá.

S3WritePolicy (p. 233)Dá permissão escrita aos objetos numAmazon S3 balde.

S3CrudPolicy (p. 234)Permite criar, ler, atualizar e eliminarpermissão para objetos num Amazon S3balde.

AMIDescribePolicy (p. 234)Dá permissão para descrever as Imagens daMáquina Amazon (amis).

CloudFormationDescribeStacksPolicy (p. 235)Dá permissão para descrever AWSCloudFormation pilhas.

RekognitionDetectOnlyPolicy (p. 235)Dá permissão para detetar faces, etiquetas etexto.

RekognitionNoDataAccessPolicy (p. 235)Dá permissão para comparar e detetar faces erótulos.

RekognitionReadPolicy (p. 236)Dá permissão à lista e às faces de pesquisa.

RekognitionWriteOnlyAccessPolicy (p. 236)Dá permissão para criar faces de recolha eíndice.

223

Page 229: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Tabela de modelos de políticas

Modelo depolítica

Description (Descrição)

SQSSendMessagePolicy (p. 237)Dá permissão para enviar mensagem para umAmazon SQS fila.

SNSPublishMessagePolicy (p. 237)Dá permissão para publicar uma mensagema um Amazon Simple Notification Service(Amazon SNS) tópico.

VPCAccessPolicy (p. 238)Permite o acesso para criar, eliminar,descrever e separar interfaces de redeelástica.

DynamoDBStreamReadPolicy (p. 238)Dá permissão para descrever e ler DynamoDBcomboios e registos.

KinesisStreamReadPolicy (p. 239)Dá permissão para listar e ler um AmazonKinesis fluxo.

SESCrudPolicy (p. 239)Dá permissão para enviar e-mail e verificar aidentidade.

SNSCrudPolicy (p. 240)Dá permissão para criar, publicar e subscreverAmazon SNS tópicos.

KinesisCrudPolicy (p. 240)Dá permissão para criar, publicar e eliminarum Amazon Kinesis fluxo.

KMSDecryptPolicy (p. 241)Dá permissão para desencriptar com um AWSKey Management Service (AWS KMS) tecla.

KMSEncryptPolicy (p. 241)Dá permissão para encriptar com um AWSKey Management Service (AWS KMS) tecla.

PollyFullAccessPolicy (p. 242)Oferece permissão de acesso total paraAmazon Polly recursos da lexicon.

S3FullAccessPolicy (p. 242)Dá permissão de acesso total aos objetosnum Amazon S3 balde.

CodePipelineLambdaExecutionPolicy (p. 243)Dá permissão para um Lambda funçãoinvocada por CodePipeline para comunicar oestado do trabalho.

ServerlessRepoReadWriteAccessPolicy (p. 244)Dá permissão para criar e listar aplicaçõesno AWS Serverless Application Repositoryserviço.

EC2CopyImagePolicy (p. 244)Dá permissão para copiar Amazon EC2imagens.

AWSSecretsManagerRotationPolicy (p. 244)Dá permissão para rodar um segredo emAWS Secrets Manager.

AWSSecretsManagerGetSecretValuePolicy (p. 245)Dá permissão para obter o valor secretopara o especificado AWS Secrets Managersegredo.

224

Page 230: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Tabela de modelos de políticas

Modelo depolítica

Description (Descrição)

CodePipelineReadOnlyPolicy (p. 245)Dá permissão de leitura para obter detalhessobre um CodePipeline linha.

CloudWatchDashboardPolicy (p. 246)Dá permissão para colocar métricas paraoperar CloudWatch dashboards.

RekognitionFacesManagementPolicy (p. 246)Dá permissão para adicionar, eliminar erostos de pesquisa num Amazon Rekognitionrecolha.

RekognitionFacesPolicy (p. 247)Dá permissão para comparar e detetar faces erótulos.

RekognitionLabelsPolicy (p. 247)Dá permissão para detetar rótulos de objetose moderação.

DynamoDBBackupFullAccessPolicy (p. 247)Dá permissão de leitura e escrita paraDynamoDB cópias de segurança mediantepedido para uma tabela.

DynamoDBRestoreFromBackupPolicy (p. 248)Dá permissão para restaurar um DynamoDBtabela a partir da cópia de segurança.

ComprehendBasicAccessPolicy (p. 249)Dá permissão para detetar entidades, frases-chave, idiomas e sentimentos.

MobileAnalyticsWriteOnlyAccessPolicy (p. 249)Fornece permissão apenas de escrita paracolocar dados de eventos para todos osrecursos da aplicação.

PinpointEndpointAccessPolicy (p. 249)Dá permissão para obter e atualizarparâmetros de avaliação para um AmazonPinpoint aplicação.

FirehoseWritePolicy (p. 250)Dá permissão para escrever a um KinesisData Firehose fluxo de entrega.

FirehoseCrudPolicy (p. 250)Dá permissão para criar, escrever, atualizare eliminar um Kinesis Data Firehose fluxo deentrega.

EKSDescribePolicy (p. 251)Dá permissão para descrever ou listarAmazon EKS grupos.

CostExplorerReadOnlyPolicy (p. 251)Fornece permissão só de leitura às API decusto único de leitura para o histórico defaturação.

OrganizationsListAccountsPolicy (p. 251)Fornece permissão só de leitura para listarnomes de contas secundárias e Ids.

SESBulkTemplatedCrudPolicy (p. 252)Dá permissão para enviar e-mails, e-mails demodelos, e-mails em massa temperados everificar a identidade.

SESEmailTemplateCrudPolicy (p. 252)Dá permissão para criar, obter, listar, atualizare eliminar Amazon SES modelos de e-mail.

225

Page 231: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Tabela de modelos de políticas

Modelo depolítica

Description (Descrição)

FilterLogEventsPolicy (p. 252)Dá permissão para filtrar CloudWatch Logseventos de um grupo de registo especificado.

SSMParameterReadPolicy (p. 253)Dá permissão para aceder a parâmetros deum Amazon EC2 Systems Manager (SSM)loja de parâmetros para carregar segredosnesta conta.

StepFunctionsExecutionPolicy (p. 254)Dá permissão para iniciar uma Step Functionsexecução da máquina.

CodeCommitCrudPolicy (p. 254)Dá permissões para criar/ler/atualizar/eliminarobjetos dentro de um CodeCommit repositório.

CodeCommitReadPolicy (p. 255)Dá permissão para ler objetos dentro de umCodeCommit repositório.

AthenaQueryPolicy (p. 256)Dá permissões para executar Athenaperguntas.

TextractPolicy (p. 257)Oferece acesso total a Amazon Textract.

TextractDetectAnalyzePolicy (p. 257)Permite o acesso à detecção e análise dedocumentos com Amazon Textract.

TextractGetResultPolicy (p. 258)Permite obter documentos detectados eanalisados de Amazon Textract.

EventBridgePutEventsPolicy (p. 258)Fornece permissões para enviar eventos paraEventBridge.

ElasticMapReduceModifyInstanceFleetPolicy (p. 258)Dá permissão para listar detalhes e modificarcapacidades, por exemplo, frotas dentro deum grupo.

ElasticMapReduceSetTerminationProtectionPolicy (p. 259)Dá permissão para definir a proteção determinação para um grupo.

ElasticMapReduceModifyInstanceGroupsPolicy (p. 259)Dá permissão para listar detalhes e modificardefinições para grupos de instância dentro deum grupo.

ElasticMapReduceCancelStepsPolicy (p. 260)Dá permissão para cancelar um passo oupassos pendentes num grupo de execução.

ElasticMapReduceTerminateJobFlowsPolicy (p. 260)Dá permissão para encerrar um grupo.

ElasticMapReduceAddJobFlowStepsPolicy (p. 260)Dá permissão para adicionar novos passos aum grupo de execução.

SageMakerCreateEndpointPolicy (p. 261)Dá permissão para criar um parâmetro deavaliação em Amazon SageMaker.

SageMakerCreateEndpointConfigPolicy (p. 261)Dá permissão para criar uma configuraçãode parâmetro de avaliação em AmazonSageMaker.

226

Page 232: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Troubleshooting

Modelo depolítica

Description (Descrição)

EcsRunTaskPolicy (p. 262)Dá permissão para iniciar uma nova tarefapara uma definição de tarefa.

EFSWriteAccessPolicy (p. 262)Dá permissão para montar um Amazon EFSsistema de ficheiros com acesso a escrita.

TroubleshootingErro de CLI: "Deve especificar valores de parâmetros válidospara o modelo da apólice "<policy-model-name>'"Ao executar sam build, você verá o seguinte erro:

"Must specify valid parameter values for policy template '<policy-template-name>'"

Isto significa que não passou um objeto vazio ao declarar um modelo de apólice que não tem valores demarcador de posição.

Para resolver isto, declare a política como o exemplo seguinte para CloudWatchPutMetricPolicy (p. 228).

MyFunction: Policies: - CloudWatchPutMetricPolicy: {}

Lista de modelos de políticasSeguem-se os modelos de políticas disponíveis, juntamente com as permissões aplicadas a cada umadelas. Modelo de aplicativo sem servidor da AWS (AWS SAM) preenche automaticamente os itens domarcador de posição (como a região AWS e a ID da conta) com a informação adequada.

SQSPollerPolicyDá permissão para consultar um Amazon Simple Queue Service (Amazon SQS) fila.

"Statement": [ { "Effect": "Allow", "Action": [ "sqs:ChangeMessageVisibility", "sqs:ChangeMessageVisibilityBatch", "sqs:DeleteMessage", "sqs:DeleteMessageBatch", "sqs:GetQueueAttributes", "sqs:ReceiveMessage" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", {

227

Page 233: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"queueName": { "Ref": "QueueName" } } ] } } ]

LambdaInvokePolicyDá permissão para invocar um AWS Lambda função, alias ou versão.

"Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:${functionName}*", { "functionName": { "Ref": "FunctionName" } } ] } } ]

CloudWatchDescribeAlarmHistoryPolicyDá permissão para descrever Amazon CloudWatch histórico de alarmes.

"Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarmHistory" ], "Resource": "*" } ]

CloudWatchPutMetricPolicyDá permissão para enviar métricas para CloudWatch.

"Statement": [ { "Effect": "Allow",

228

Page 234: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Action": [ "cloudwatch:PutMetricData" ], "Resource": "*" } ]

EC2DescribePolicyDá permissão para descrever Amazon Elastic Compute Cloud (Amazon EC2) instâncias.

"Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeRegions", "ec2:DescribeInstances" ], "Resource": "*" } ]

DynamoDBCrudPolicyPermite criar, ler, atualizar e eliminar permissões para um Amazon DynamoDB tabela.

"Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:DeleteItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem", "dynamodb:BatchWriteItem", "dynamodb:BatchGetItem", "dynamodb:DescribeTable", "dynamodb:ConditionCheckItem" ], "Resource": [ { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { "tableName": { "Ref": "TableName" } } ] }, { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}/index/*", {

229

Page 235: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"tableName": { "Ref": "TableName" } } ] } ] } ]

DynamoDBReadPolicyFornece permissão só de leitura a um DynamoDB tabela.

"Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:BatchGetItem", "dynamodb:DescribeTable" ], "Resource": [ { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { "tableName": { "Ref": "TableName" } } ] }, { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}/index/*", { "tableName": { "Ref": "TableName" } } ] } ] } ]

DynamoDBWritePolicyFornece permissão apenas de escrita para DynamoDB tabela.

"Statement": [ { "Effect": "Allow",

230

Page 236: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Action": [ "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:BatchWriteItem" ], "Resource": [ { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { "tableName": { "Ref": "TableName" } } ] }, { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}/index/*", { "tableName": { "Ref": "TableName" } } ] } ] } ]

DynamoDBReconfigurePolicyDá permissão para reconfigurar um DynamoDB tabela.

"Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:UpdateTable" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { "tableName": { "Ref": "TableName" } } ] } } ]

SESSendBouncePolicyDá permissão de sendbounce a um Amazon Simple Email Service (Amazon SES) identidade.

231

Page 237: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Statement": [ { "Effect": "Allow", "Action": [ "ses:SendBounce" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:identity/${identityName}", { "identityName": { "Ref": "IdentityName" } } ] } } ]

ElasticsearchHttpPostPolicyDá permissão POST e PUT para Amazon Elasticsearch Service.

"Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpPost", "es:ESHttpPut" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:es:${AWS::Region}:${AWS::AccountId}:domain/${domainName}/*", { "domainName": { "Ref": "DomainName" } } ] } } ]

S3ReadPolicyFornece permissão só de leitura a objetos num Amazon Simple Storage Service (Amazon S3) pá.

"Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetBucketLocation",

232

Page 238: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"s3:GetObjectVersion", "s3:GetLifecycleConfiguration" ], "Resource": [ { "Fn::Sub": [ "arn:${AWS::Partition}:s3:::${bucketName}", { "bucketName": { "Ref": "BucketName" } } ] }, { "Fn::Sub": [ "arn:${AWS::Partition}:s3:::${bucketName}/*", { "bucketName": { "Ref": "BucketName" } } ] } ] } ]

S3WritePolicyDá permissão escrita aos objetos num Amazon S3 balde.

"Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutLifecycleConfiguration" ], "Resource": [ { "Fn::Sub": [ "arn:${AWS::Partition}:s3:::${bucketName}", { "bucketName": { "Ref": "BucketName" } } ] }, { "Fn::Sub": [ "arn:${AWS::Partition}:s3:::${bucketName}/*", { "bucketName": { "Ref": "BucketName" } } ] } ]

233

Page 239: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

} ]

S3CrudPolicyPermite criar, ler, atualizar e eliminar permissão para objetos num Amazon S3 balde.

"Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObjectVersion", "s3:PutObject", "s3:PutObjectAcl", "s3:GetLifecycleConfiguration", "s3:PutLifecycleConfiguration", "s3:DeleteObject" ], "Resource": [ { "Fn::Sub": [ "arn:${AWS::Partition}:s3:::${bucketName}", { "bucketName": { "Ref": "BucketName" } } ] }, { "Fn::Sub": [ "arn:${AWS::Partition}:s3:::${bucketName}/*", { "bucketName": { "Ref": "BucketName" } } ] } ] } ]

AMIDescribePolicyDá permissão para descrever as Imagens da Máquina Amazon (amis).

"Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeImages" ], "Resource": {

234

Page 240: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Fn::Sub": "arn:${AWS::Partition}:ec2:${AWS::Region}:${AWS::AccountId}:image/*" } } ]

CloudFormationDescribeStacksPolicyDá permissão para descrever AWS CloudFormation pilhas.

"Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:DescribeStacks" ], "Resource": { "Fn::Sub": "arn:${AWS::Partition}:cloudformation:${AWS::Region}:${AWS::AccountId}:stack/*" } } ]

RekognitionDetectOnlyPolicyDá permissão para detetar faces, etiquetas e texto.

"Statement": [ { "Effect": "Allow", "Action": [ "rekognition:DetectFaces", "rekognition:DetectLabels", "rekognition:DetectModerationLabels", "rekognition:DetectText" ], "Resource": "*" } ]

RekognitionNoDataAccessPolicyDá permissão para comparar e detetar faces e rótulos.

"Statement": [ { "Effect": "Allow", "Action": [ "rekognition:CompareFaces", "rekognition:DetectFaces", "rekognition:DetectLabels", "rekognition:DetectModerationLabels" ],

235

Page 241: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:rekognition:${AWS::Region}:${AWS::AccountId}:collection/${collectionId}", { "collectionId": { "Ref": "CollectionId" } } ] } } ]

RekognitionReadPolicyDá permissão à lista e às faces de pesquisa.

"Statement": [ { "Effect": "Allow", "Action": [ "rekognition:ListCollections", "rekognition:ListFaces", "rekognition:SearchFaces", "rekognition:SearchFacesByImage" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:rekognition:${AWS::Region}:${AWS::AccountId}:collection/${collectionId}", { "collectionId": { "Ref": "CollectionId" } } ] } } ]

RekognitionWriteOnlyAccessPolicyDá permissão para criar faces de recolha e índice.

"Statement": [ { "Effect": "Allow", "Action": [ "rekognition:CreateCollection", "rekognition:IndexFaces" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:rekognition:${AWS::Region}:${AWS::AccountId}:collection/${collectionId}", {

236

Page 242: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"collectionId": { "Ref": "CollectionId" } } ] } } ]

SQSSendMessagePolicyDá permissão para enviar mensagem para um Amazon SQS fila.

"Statement": [ { "Effect": "Allow", "Action": [ "sqs:SendMessage*" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", { "queueName": { "Ref": "QueueName" } } ] } } ]

SNSPublishMessagePolicyDá permissão para publicar uma mensagem a um Amazon Simple Notification Service (Amazon SNS)tópico.

"Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:sns:${AWS::Region}:${AWS::AccountId}:${topicName}", { "topicName": { "Ref": "TopicName" } } ] } } ]

237

Page 243: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

VPCAccessPolicyPermite o acesso para criar, eliminar, descrever e separar interfaces de rede elástica.

"Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DetachNetworkInterface" ], "Resource": "*" } ]

DynamoDBStreamReadPolicyDá permissão para descrever e ler DynamoDB comboios e registos.

"Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}/stream/${streamName}", { "tableName": { "Ref": "TableName" }, "streamName": { "Ref": "StreamName" } } ] } }, { "Effect": "Allow", "Action": [ "dynamodb:ListStreams" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}/stream/*", { "tableName": { "Ref": "TableName" } } ]

238

Page 244: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

} } ]

KinesisStreamReadPolicyDá permissão para listar e ler um Amazon Kinesis fluxo.

"Statement": [ { "Effect": "Allow", "Action": [ "kinesis:ListStreams", "kinesis:DescribeLimits" ], "Resource": { "Fn::Sub": "arn:${AWS::Partition}:kinesis:${AWS::Region}:${AWS::AccountId}:stream/*" } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetRecords", "kinesis:GetShardIterator" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:kinesis:${AWS::Region}:${AWS::AccountId}:stream/${streamName}", { "streamName": { "Ref": "StreamName" } } ] } } ]

SESCrudPolicyDá permissão para enviar e-mail e verificar a identidade.

"Statement": [ { "Effect": "Allow", "Action": [ "ses:GetIdentityVerificationAttributes", "ses:SendEmail", "ses:SendRawEmail", "ses:VerifyEmailIdentity" ], "Resource": { "Fn::Sub": [

239

Page 245: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:identity/${identityName}", { "identityName": { "Ref": "IdentityName" } } ] } } ]

SNSCrudPolicyDá permissão para criar, publicar e subscrever Amazon SNS tópicos.

"Statement": [ { "Effect": "Allow", "Action": [ "sns:ListSubscriptionsByTopic", "sns:CreateTopic", "sns:SetTopicAttributes", "sns:Subscribe", "sns:Publish" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:sns:${AWS::Region}:${AWS::AccountId}:${topicName}*", { "topicName": { "Ref": "TopicName" } } ] } } ]

KinesisCrudPolicyDá permissão para criar, publicar e eliminar um Amazon Kinesis fluxo.

"Statement": [ { "Effect": "Allow", "Action": [ "kinesis:AddTagsToStream", "kinesis:CreateStream", "kinesis:DecreaseStreamRetentionPeriod", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetShardIterator", "kinesis:IncreaseStreamRetentionPeriod", "kinesis:ListTagsForStream", "kinesis:MergeShards",

240

Page 246: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"kinesis:PutRecord", "kinesis:PutRecords", "kinesis:SplitShard", "kinesis:RemoveTagsFromStream" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:kinesis:${AWS::Region}:${AWS::AccountId}:stream/${streamName}", { "streamName": { "Ref": "StreamName" } } ] } } ]

KMSDecryptPolicyDá permissão para desencriptar com um AWS Key Management Service (AWS KMS) tecla.

"Statement": [ { "Action": "kms:Decrypt", "Effect": "Allow", "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:kms:${AWS::Region}:${AWS::AccountId}:key/${keyId}", { "keyId": { "Ref": "KeyId" } } ] } } ]

KMSEncryptPolicyDá permissão para encriptar com um AWS KMS chave.

"Statement": [ { "Action": "kms:Encrypt", "Effect": "Allow", "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:kms:${AWS::Region}:${AWS::AccountId}:key/${keyId}", { "keyId": { "Ref": "KeyId" } } ]

241

Page 247: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

} } ]

PollyFullAccessPolicyOferece permissão de acesso total para Amazon Polly recursos da lexicon.

"Statement": [ { "Effect": "Allow", "Action": [ "polly:GetLexicon", "polly:DeleteLexicon" ], "Resource": [ { "Fn::Sub": [ "arn:${AWS::Partition}:polly:${AWS::Region}:${AWS::AccountId}:lexicon/${lexiconName}", { "lexiconName": { "Ref": "LexiconName" } } ] } ] }, { "Effect": "Allow", "Action": [ "polly:DescribeVoices", "polly:ListLexicons", "polly:PutLexicon", "polly:SynthesizeSpeech" ], "Resource": [ { "Fn::Sub": "arn:${AWS::Partition}:polly:${AWS::Region}:${AWS::AccountId}:lexicon/*" } ] } ]

S3FullAccessPolicyDá permissão de acesso total aos objetos num Amazon S3 balde.

"Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:PutObject",

242

Page 248: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"s3:PutObjectAcl", "s3:DeleteObject", "s3:DeleteObjectTagging", "s3:DeleteObjectVersionTagging", "s3:GetObjectTagging", "s3:GetObjectVersionTagging", "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ { "Fn::Sub": [ "arn:${AWS::Partition}:s3:::${bucketName}/*", { "bucketName": { "Ref": "BucketName" } } ] } ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:GetLifecycleConfiguration", "s3:PutLifecycleConfiguration" ], "Resource": [ { "Fn::Sub": [ "arn:${AWS::Partition}:s3:::${bucketName}", { "bucketName": { "Ref": "BucketName" } } ] } ] } ]

CodePipelineLambdaExecutionPolicyDá permissão para um Lambda função invocada por AWS CodePipeline para comunicar o estado dotrabalho.

"Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:PutJobSuccessResult", "codepipeline:PutJobFailureResult" ], "Resource": "*" } ]

243

Page 249: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

ServerlessRepoReadWriteAccessPolicyDá permissão para criar e listar aplicações no AWS Serverless Application Repository (AWS SAM) serviço.

"Statement": [ { "Effect": "Allow", "Action": [ "serverlessrepo:CreateApplication", "serverlessrepo:CreateApplicationVersion", "serverlessrepo:GetApplication", "serverlessrepo:ListApplications", "serverlessrepo:ListApplicationVersions" ], "Resource": [ { "Fn::Sub": "arn:${AWS::Partition}:serverlessrepo:${AWS::Region}:${AWS::AccountId}:applications/*" } ] } ]

EC2CopyImagePolicyDá permissão para copiar Amazon EC2 imagens.

"Statement": [ { "Effect": "Allow", "Action": [ "ec2:CopyImage" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:ec2:${AWS::Region}:${AWS::AccountId}:image/${imageId}", { "imageId": { "Ref": "ImageId" } } ] } } ]

AWSSecretsManagerRotationPolicyDá permissão para rodar um segredo em AWS Secrets Manager.

"Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret",

244

Page 250: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": { "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:*" }, "Condition": { "StringEquals": { "secretsmanager:resource/AllowRotationLambdaArn": { "Fn::Sub": [ "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:${functionName}", { "functionName": { "Ref": "FunctionName" } } ] } } } }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" } ]

AWSSecretsManagerGetSecretValuePolicyDá permissão para obter o valor secreto para o especificado AWS Secrets Manager segredo.

"Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": { "Fn::Sub": [ "${secretArn}", { "secretArn": { "Ref": "SecretArn" } } ] } } ]

CodePipelineReadOnlyPolicyDá permissão de leitura para obter detalhes sobre um CodePipeline linha.

245

Page 251: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:ListPipelineExecutions" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:codepipeline:${AWS::Region}:${AWS::AccountId}:${pipelinename}", { "pipelinename": { "Ref": "PipelineName" } } ] } } ]

CloudWatchDashboardPolicyDá permissão para colocar métricas para operar CloudWatch dashboards.

"Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:GetDashboard", "cloudwatch:ListDashboards", "cloudwatch:PutDashboard", "cloudwatch:ListMetrics" ], "Resource": "*" } ]

RekognitionFacesManagementPolicyDá permissão para adicionar, eliminar e rostos de pesquisa num Amazon Rekognition recolha.

"Statement": [{ "Effect": "Allow", "Action": [ "rekognition:IndexFaces", "rekognition:DeleteFaces", "rekognition:SearchFaces", "rekognition:SearchFacesByImage", "rekognition:ListFaces" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:rekognition:${AWS::Region}:${AWS::AccountId}:collection/${collectionId}", { "collectionId": {

246

Page 252: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Ref": "CollectionId" } } ] } ]

RekognitionFacesPolicyDá permissão para comparar e detetar faces e rótulos.

"Statement": [{ "Effect": "Allow", "Action": [ "rekognition:CompareFaces", "rekognition:DetectFaces" ], "Resource": "*" } ]

RekognitionLabelsPolicyDá permissão para detetar rótulos de objetos e moderação.

"Statement": [{ "Effect": "Allow", "Action": [ "rekognition:DetectLabels", "rekognition:DetectModerationLabels" ], "Resource": "*" } ]

DynamoDBBackupFullAccessPolicyDá permissão de leitura e escrita para DynamoDB cópias de segurança mediante pedido para uma tabela.

"Statement": [{ "Effect": "Allow", "Action": [ "dynamodb:CreateBackup", "dynamodb:DescribeContinuousBackups" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", { "tableName": { "Ref": "TableName" }

247

Page 253: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

} ] } }, { "Effect": "Allow", "Action": [ "dynamodb:DeleteBackup", "dynamodb:DescribeBackup", "dynamodb:ListBackups" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}/backup/*", { "tableName": { "Ref": "TableName" } } ] } } ]

DynamoDBRestoreFromBackupPolicyDá permissão para restaurar um DynamoDB tabela a partir da cópia de segurança.

"Statement": [{ "Effect": "Allow", "Action": [ "dynamodb:RestoreTableFromBackup" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}/backup/*", { "tableName": { "Ref": "TableName" } } ] } }, { "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:BatchWriteItem" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}", {

248

Page 254: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"tableName": { "Ref": "TableName" } } ] } } ]

ComprehendBasicAccessPolicyDá permissão para detetar entidades, frases-chave, idiomas e sentimentos.

"Statement": [{ "Effect": "Allow", "Action": [ "comprehend:BatchDetectKeyPhrases", "comprehend:DetectDominantLanguage", "comprehend:DetectEntities", "comprehend:BatchDetectEntities", "comprehend:DetectKeyPhrases", "comprehend:DetectSentiment", "comprehend:BatchDetectDominantLanguage", "comprehend:BatchDetectSentiment" ], "Resource": "*" } ]

MobileAnalyticsWriteOnlyAccessPolicyFornece permissão apenas de escrita para colocar dados de eventos para todos os recursos da aplicação.

"Statement": [ { "Effect": "Allow", "Action": [ "mobileanalytics:PutEvents" ], "Resource": "*" } ]

PinpointEndpointAccessPolicyDá permissão para obter e atualizar parâmetros de avaliação para um Amazon Pinpoint aplicação.

"Statement": [ { "Effect": "Allow", "Action": [ "mobiletargeting:GetEndpoint", "mobiletargeting:UpdateEndpoint",

249

Page 255: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"mobiletargeting:UpdateEndpointsBatch" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:mobiletargeting:${AWS::Region}:${AWS::AccountId}:apps/${pinpointApplicationId}/endpoints/*", { "pinpointApplicationId": { "Ref": "PinpointApplicationId" } } ] } } ]

FirehoseWritePolicyDá permissão para escrever a um Kinesis Data Firehose fluxo de entrega.

"Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:firehose:${AWS::Region}:${AWS::AccountId}:deliverystream/${deliveryStreamName}", { "deliveryStreamName": { "Ref": "DeliveryStreamName" } } ] } } ]

FirehoseCrudPolicyDá permissão para criar, escrever, atualizar e eliminar um Kinesis Data Firehose fluxo de entrega.

"Statement": [ { "Effect": "Allow", "Action": [ "firehose:CreateDeliveryStream", "firehose:DeleteDeliveryStream", "firehose:DescribeDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:UpdateDestination" ], "Resource": { "Fn::Sub": [

250

Page 256: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"arn:${AWS::Partition}:firehose:${AWS::Region}:${AWS::AccountId}:deliverystream/${deliveryStreamName}", { "deliveryStreamName": { "Ref": "DeliveryStreamName" } } ] } } ]

EKSDescribePolicyDá permissão para descrever ou listar Amazon Elastic Kubernetes Service (Amazon EKS) aglomerados.

"Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:ListClusters" ], "Resource": "*" } ]

CostExplorerReadOnlyPolicyFornece permissão só de leitura para a leitura AWS Cost Explorer (Cost Explorer) apis para o histórico defaturação.

"Statement": [{ "Effect": "Allow", "Action": [ "ce:GetCostAndUsage", "ce:GetDimensionValues", "ce:GetReservationCoverage", "ce:GetReservationPurchaseRecommendation", "ce:GetReservationUtilization", "ce:GetTags" ], "Resource": "*" }]

OrganizationsListAccountsPolicyFornece permissão só de leitura para listar nomes de contas secundárias e Ids.

"Statement": [{ "Effect": "Allow", "Action": [ "organizations:ListAccounts"

251

Page 257: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

], "Resource": "*" }]

SESBulkTemplatedCrudPolicyDá permissão para enviar Amazon SES e-mail, e-mail de modelos, e-mails em massa e para verificar aidentidade.

"Statement": [ { "Effect": "Allow", "Action": [ "ses:GetIdentityVerificationAttributes", "ses:SendEmail", "ses:SendRawEmail", "ses:SendTemplatedEmail", "ses:SendBulkTemplatedEmail", "ses:VerifyEmailIdentity" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:identity/${identityName}", { "identityName": { "Ref": "IdentityName" } } ] } } ]

SESEmailTemplateCrudPolicyDá permissão para criar, obter, listar, atualizar e eliminar Amazon SES modelos de e-mail.

"Statement": [{ "Effect": "Allow", "Action": [ "ses:CreateTemplate", "ses:GetTemplate", "ses:ListTemplates", "ses:UpdateTemplate", "ses:DeleteTemplate", "ses:TestRenderTemplate" ], "Resource": "*" }]

FilterLogEventsPolicyDá permissão para filtrar CloudWatch Logs eventos de um grupo de registo especificado.

252

Page 258: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Statement": [ { "Effect": "Allow", "Action": [ "logs:FilterLogEvents" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:${logGroupName}:log-stream:*", { "logGroupName": { "Ref": "LogGroupName" } } ] } } ]

SSMParameterReadPolicyDá permissão para aceder a parâmetros de um Amazon EC2 Systems Manager (SSM) loja de parâmetrospara carregar segredos nesta conta.

Note

Se não estiver a utilizar a chave predefinida, também necessitará do KMSDecryptPolicypolítica.

"Statement": [ { "Effect": "Allow", "Action": [ "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParameters", "ssm:GetParameter", "ssm:GetParametersByPath" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:ssm:${AWS::Region}:${AWS::AccountId}:parameter/${parameterName}", { "parameterName": { "Ref": "ParameterName" } } ] } } ]

253

Page 259: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

StepFunctionsExecutionPolicyDá permissão para iniciar uma Step Functions execução da máquina.

"Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:stateMachine:${stateMachineName}", { "stateMachineName": { "Ref": "StateMachineName" } } ] } } ]

CodeCommitCrudPolicyDá permissões para criar, ler, atualizar e eliminar objetos dentro de um determinado CodeCommitrepositório.

"Statement": [ { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush", "codecommit:CreateBranch", "codecommit:DeleteBranch", "codecommit:GetBranch", "codecommit:ListBranches", "codecommit:MergeBranchesByFastForward", "codecommit:MergeBranchesBySquash", "codecommit:MergeBranchesByThreeWay", "codecommit:UpdateDefaultBranch", "codecommit:BatchDescribeMergeConflicts", "codecommit:CreateUnreferencedMergeCommit", "codecommit:DescribeMergeConflicts", "codecommit:GetMergeCommit", "codecommit:GetMergeOptions", "codecommit:BatchGetPullRequests", "codecommit:CreatePullRequest", "codecommit:DescribePullRequestEvents", "codecommit:GetCommentsForPullRequest", "codecommit:GetCommitsFromMergeBase", "codecommit:GetMergeConflicts", "codecommit:GetPullRequest", "codecommit:ListPullRequests", "codecommit:MergePullRequestByFastForward", "codecommit:MergePullRequestBySquash", "codecommit:MergePullRequestByThreeWay",

254

Page 260: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"codecommit:PostCommentForPullRequest", "codecommit:UpdatePullRequestDescription", "codecommit:UpdatePullRequestStatus", "codecommit:UpdatePullRequestTitle", "codecommit:DeleteFile", "codecommit:GetBlob", "codecommit:GetFile", "codecommit:GetFolder", "codecommit:PutFile", "codecommit:DeleteCommentContent", "codecommit:GetComment", "codecommit:GetCommentsForComparedCommit", "codecommit:PostCommentForComparedCommit", "codecommit:PostCommentReply", "codecommit:UpdateComment", "codecommit:BatchGetCommits", "codecommit:CreateCommit", "codecommit:GetCommit", "codecommit:GetCommitHistory", "codecommit:GetDifferences", "codecommit:GetObjectIdentifier", "codecommit:GetReferences", "codecommit:GetTree", "codecommit:GetRepository", "codecommit:UpdateRepositoryDescription", "codecommit:ListTagsForResource", "codecommit:TagResource", "codecommit:UntagResource", "codecommit:GetRepositoryTriggers", "codecommit:PutRepositoryTriggers", "codecommit:TestRepositoryTriggers", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:UploadArchive", "codecommit:GetUploadArchiveStatus", "codecommit:CancelUploadArchive" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:codecommit:${AWS::Region}:${AWS::AccountId}:${repositoryName}", { "repositoryName": { "Ref": "RepositoryName" } } ] } } ]

CodeCommitReadPolicyDá permissão para ler objetos dentro de um CodeCommit repositório.

"Statement": [ { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GetBranch", "codecommit:ListBranches",

255

Page 261: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"codecommit:BatchDescribeMergeConflicts", "codecommit:DescribeMergeConflicts", "codecommit:GetMergeCommit", "codecommit:GetMergeOptions", "codecommit:BatchGetPullRequests", "codecommit:DescribePullRequestEvents", "codecommit:GetCommentsForPullRequest", "codecommit:GetCommitsFromMergeBase", "codecommit:GetMergeConflicts", "codecommit:GetPullRequest", "codecommit:ListPullRequests", "codecommit:GetBlob", "codecommit:GetFile", "codecommit:GetFolder", "codecommit:GetComment", "codecommit:GetCommentsForComparedCommit", "codecommit:BatchGetCommits", "codecommit:GetCommit", "codecommit:GetCommitHistory", "codecommit:GetDifferences", "codecommit:GetObjectIdentifier", "codecommit:GetReferences", "codecommit:GetTree", "codecommit:GetRepository", "codecommit:ListTagsForResource", "codecommit:GetRepositoryTriggers", "codecommit:TestRepositoryTriggers", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetUploadArchiveStatus" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:codecommit:${AWS::Region}:${AWS::AccountId}:${repositoryName}", { "repositoryName": { "Ref": "RepositoryName" } } ] } } ]

AthenaQueryPolicyDá permissões para executar Athena perguntas.

"Statement": [ { "Effect": "Allow", "Action": [ "athena:ListWorkGroups", "athena:GetExecutionEngine", "athena:GetExecutionEngines", "athena:GetNamespace", "athena:GetCatalogs", "athena:GetNamespaces", "athena:GetTables", "athena:GetTable" ],

256

Page 262: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Resource": "*" }, { "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryResults", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:ListQueryExecutions", "athena:StopQueryExecution", "athena:GetQueryResultsStream", "athena:ListNamedQueries", "athena:CreateNamedQuery", "athena:GetQueryExecution", "athena:BatchGetNamedQuery", "athena:BatchGetQueryExecution", "athena:GetWorkGroup" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:athena:${AWS::Region}:${AWS::AccountId}:workgroup/${workgroupName}", { "workgroupName": { "Ref": "WorkGroupName" } } ] } } ]

TextractPolicyOferece acesso total a Amazon Textract.

"Statement": [ { "Effect": "Allow", "Action": [ "textract:*" ], "Resource": "*" } ]

TextractDetectAnalyzePolicyPermite o acesso à detecção e análise de documentos com Amazon Textract.

"Statement": [ { "Effect": "Allow", "Action": [ "textract:DetectDocumentText", "textract:StartDocumentTextDetection", "textract:StartDocumentAnalysis",

257

Page 263: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"textract:AnalyzeDocument" ], "Resource": "*" } ]

TextractGetResultPolicyPermite obter documentos detectados e analisados de Amazon Textract.

"Statement": [ { "Effect": "Allow", "Action": [ "textract:GetDocumentTextDetection", "textract:GetDocumentAnalysis" ], "Resource": "*" } ]

EventBridgePutEventsPolicyFornece permissões para enviar eventos para Amazon EventBridge.

"Statement": [ { "Effect": "Allow", "Action": "events:PutEvents", "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/${eventBusName}", { "eventBusName": { "Ref": "EventBusName" } } ] } } ]

ElasticMapReduceModifyInstanceFleetPolicyDá permissão para listar detalhes e modificar capacidades, por exemplo, frotas dentro de um grupo.

"Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceFleet", "elasticmapreduce:ListInstanceFleets" ], "Resource": {

258

Page 264: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Fn::Sub": [ "arn:${AWS::Partition}:elasticmapreduce:${AWS::Region}:${AWS::AccountId}:cluster/${clusterId}", { "clusterId": { "Ref": "ClusterId" } } ] }, "Effect": "Allow" } ]

ElasticMapReduceSetTerminationProtectionPolicyDá permissão para definir a proteção de terminação para um grupo.

"Statement": [ { "Action": "elasticmapreduce:SetTerminationProtection", "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:elasticmapreduce:${AWS::Region}:${AWS::AccountId}:cluster/${clusterId}", { "clusterId": { "Ref": "ClusterId" } } ] }, "Effect": "Allow" } ]

ElasticMapReduceModifyInstanceGroupsPolicyDá permissão para listar detalhes e modificar definições para grupos de instância dentro de um grupo.

"Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceGroups", "elasticmapreduce:ListInstanceGroups" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:elasticmapreduce:${AWS::Region}:${AWS::AccountId}:cluster/${clusterId}", { "clusterId": { "Ref": "ClusterId" } } ] }, "Effect": "Allow"

259

Page 265: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

} ]

ElasticMapReduceCancelStepsPolicyDá permissão para cancelar um passo ou passos pendentes num grupo de execução.

"Statement": [ { "Action": "elasticmapreduce:CancelSteps", "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:elasticmapreduce:${AWS::Region}:${AWS::AccountId}:cluster/${clusterId}", { "clusterId": { "Ref": "ClusterId" } } ] }, "Effect": "Allow" } ]

ElasticMapReduceTerminateJobFlowsPolicyDá permissão para encerrar um grupo.

"Statement": [ { "Action": "elasticmapreduce:TerminateJobFlows", "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:elasticmapreduce:${AWS::Region}:${AWS::AccountId}:cluster/${clusterId}", { "clusterId": { "Ref": "ClusterId" } } ] }, "Effect": "Allow" } ]

ElasticMapReduceAddJobFlowStepsPolicyDá permissão para adicionar novos passos a um grupo de execução.

"Statement": [ { "Action": "elasticmapreduce:AddJobFlowSteps",

260

Page 266: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

"Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:elasticmapreduce:${AWS::Region}:${AWS::AccountId}:cluster/${clusterId}", { "clusterId": { "Ref": "ClusterId" } } ] }, "Effect": "Allow" } ]

SageMakerCreateEndpointPolicyDá permissão para criar um parâmetro de avaliação em Amazon SageMaker.

"Statement": [ { "Action": [ "sagemaker:CreateEndpoint" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:sagemaker:${AWS::Region}:${AWS::AccountId}:endpoint/${endpointName}", { "endpointName": { "Ref": "EndpointName" } } ] }, "Effect": "Allow" } ]

SageMakerCreateEndpointConfigPolicyDá permissão para criar uma configuração de parâmetro de avaliação em Amazon SageMaker.

"Statement": [ { "Action": [ "sagemaker:CreateEndpointConfig" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:sagemaker:${AWS::Region}:${AWS::AccountId}:endpoint-config/${endpointConfigName}", { "endpointConfigName": { "Ref": "EndpointConfigName" } } ]

261

Page 267: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Lista de modelos de políticas

}, "Effect": "Allow" } ]

EcsRunTaskPolicyDá permissão para iniciar uma nova tarefa para uma definição de tarefa.

"Statement": [ { "Action": [ "ecs:RunTask" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:ecs:${AWS::Region}:${AWS::AccountId}:task-definition/${taskDefinition}", { "taskDefinition": { "Ref": "TaskDefinition" } } ] }, "Effect": "Allow" } ]

EFSWriteAccessPolicyDá permissão para montar um Amazon EFS sistema de ficheiros com acesso a escrita.

"Statement": [ { "Effect": "Allow", "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Resource": { "Fn::Sub": [ "arn:${AWS::Partition}:elasticfilesystem:${AWS::Region}:${AWS::AccountId}:file-system/${FileSystem}", { "FileSystem": { "Ref": "FileSystem" } } ] }, "Condition": { "StringEquals": { "elasticfilesystem:AccessPointArn": { "Fn::Sub": [ "arn:${AWS::Partition}:elasticfilesystem:${AWS::Region}:${AWS::AccountId}:access-point/${AccessPoint}", {

262

Page 268: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

AWS SAM Telemetria ISM

"AccessPoint": { "Ref": "AccessPoint" } } ] } } } } ]

Telemetria no AWS SAM CLINa AWS, desenvolvemos e lançámos serviços com base no que aprendemos com as interações comos clientes. Utilizamos o feedback dos clientes para iterar o nosso produto. A telemetria é informaçãoadicional que nos ajuda a compreender melhor as necessidades dos nossos clientes, a diagnosticarproblemas e a fornecer funcionalidades que melhoram a experiência do cliente.

O AWS SAM O SBC recolhe a telemetria, como métricas de utilização genéricas, informações sobre osistema e o ambiente e erros. Para obter detalhes sobre os tipos de telemetria recolhidos, consulte Tiposde informações recolhidas (p. 264).

O AWS SAM A TIA faz não recolher informações pessoais, tais como nomes de utilizador ou endereços dee-mail. Também não extrai informações sensíveis ao nível do projecto.

Os clientes controlam se a telemetria está ativada e pode alterar as suas definições em qualquer pontotemporal. Se a telemetria permanecer ativada, o AWS SAM O EMC envia dados de telemetria em segundoplano sem necessitar de qualquer interação adicional com o cliente.

Desactivar a telemetria para uma sessãoNos sistemas operativos macos e Linux, pode desativar a telemetria para uma única sessão. Paradesativar a telemetria para a sua sessão atual, execute o seguinte comando para definir a variável doambiente SAM_CLI_TELEMETRY para false. Tem de repetir o comando para cada novo terminal ousessão.

export SAM_CLI_TELEMETRY=0

Desativar a telemetria para o seu perfil em todas assessõesExecute os seguintes comandos para desativar a telemetria para todas as sessões quando estiver aexecutar o AWS SAM CLI no seu sistema operativo.

Para desativar a telemetria em Linux

1. Executar .

echo "export SAM_CLI_TELEMETRY=0" >>~/.profile

2. Executar .

source ~/.profile

263

Page 269: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedorTipos de informações recolhidas

Desativar a telemetria em macos

1. Executar .

echo "export SAM_CLI_TELEMETRY=0" >>~/.profile

2. Executar .

source ~/.profile

Para desativar a telemetria no Windows

1. Executar .

setx SAM_CLI_TELEMETRY 0

2. Executar .

refreshenv

Tipos de informações recolhidas• Informações de utilização – Os comandos e subcomandos genéricos que são executados.• Erros e informações de diagnóstico – O estado e duração dos comandos executados, incluindo códigos

de saída, nomes de exceções internas e falhas ao ligar ao acoplador.• Informação do sistema e ambiente – A versão Python, sistema operativo (Windows, Linux ou macos)

e ambiente em que o AWS SAM O CLI é executado (por exemplo, AWS CodeBuild, um conjunto deferramentas de IDE AWS ou um terminal).

Saiba mais:Os dados de telemetria recolhidos adere ao AWS políticas de privacidade de dados. Para obter maisinformações, consulte o seguinte: .

• Termos de serviço AWS• Privacidade de dados

Observações importantesEsta secção contém notas importantes e problemas conhecidos para Modelo de aplicativo sem servidor daAWS.

Instalar AWS SAM IGN em janelas de 32 bitsApoio para AWS SAM A IGN em Windows de 32 bits será brevemente preterida. Se operar num sistemade 32 bits, recomendamos que atualize para um sistema de 64 bits e siga as instruções encontradas emInstalar o AWS SAM CLI no Windows (p. 7).

Se não conseguir actualizar para um sistema de 64 bits, pode utilizar o Caixa de ferramentas do acopladorantigo com AWS SAM CLI num sistema de 32 bits. No entanto, isto fará com que se depare com

264

Page 270: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Instalar AWS SAM IGN em janelas de 32 bits

determinadas limitações com o AWS SAM CLI. Por exemplo, não pode executar recipientes do acopladorde 64 bits num sistema de 32 bits. Então, se o seu Lambda função depende de um recipiente de 64 bitscompilado nativamente, não poderá testá-lo localmente num sistema de 32 bits.

Para instalar AWS SAM IGN num sistema de 32 bits, execute o seguinte comando:

pip install aws-sam-cli

Important

Embora o pip install aws-sam-cli também funciona em Windows de 64 bits,recomendamos que utilize o MSI de 64 bits para instalar AWS SAM CLI nos sistemas de 64 bits.

265

Page 271: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Histórico de documentos do AWSSAM

A tabela a seguir descreve as alterações importantes em cada versão do Guia do desenvolvedordo Modelo de aplicativo sem servidor da AWS. Para receber notificações sobre atualizações dessadocumentação, assine um feed RSS.

• Atualização da documentação mais recente: 13 de agosto de 2020

update-history-change update-history-description update-history-date

Suporte ao AmazonMSK (p. 266)

Suporte adicionado paraAmazon MSK como fonte deeventos para funções semservidor. Isto permite registosnum Amazon MSK tópicopara ativar o seu Lambdafunção. Para mais informações,consulte o EventSourcee MSK tipos de dados doAWS::Serverless::Functiontipo de recurso.

August 13, 2020

Suporte ao AmazonEFS (p. 266)

Suporte adicionado paramontagem Amazon EFSsistemas de ficheiros paradiretórios locais. Isto permiteque o seu Lambda código defunção para aceder e modificarrecursos partilhados. Paramais informações, consulteo FileSystemConfigspropriedade daAWS::Serverless::Functiontipo de recurso.

June 16, 2020

Orquestrar aplicações semservidor (p. 266)

Suporte adicionado paraaplicações orquestrais criandoStep Functions máquinas estataisutilizando AWS SAM. Paramais informações, consulteOrquestrar AWS Recursoscom AWS Step Functions e oAWS::Serverless::StateMachinetipo de recurso.

May 27, 2020

Construir tempos de runtimespersonalizados (p. 266)

Foi adicionada a capacidadede construir tempos defluxo personalizados. Paramais informações, consulteConstruir tempos de runtimespersonalizados.

May 21, 2020

266

Page 272: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Camadas deconstrução (p. 266)

Foi adicionada a capacidadede criar recursos individuaisde estofversão. Para maisinformações, consulte Camadasde construção.

May 19, 2020

Gerado AWS CloudFormationRecursos (p. 266)

Forneceu detalhes sobre oAWS CloudFormation recursosque AWS SAM gera e comoreferenciá-los. Para maisinformações, consulte GeradoAWS CloudFormation Recursos.

April 8, 2020

Configuração AWScredenciais (p. 266)

Adição de instruções paraconfigurar AWS o caso decredentialsin ainda não os definiupara utilizar com outros AWSferramentas, tais como umaAWS sdks ou AWS CLI. Paramais informações, consulteConfiguração AWS Credenciais.

January 17, 2020

AWS SAM Especificação eAWS SAM Atualizações deCLI (p. 266)

Migrou AWS SAM Especificaçãodo github. Para maisinformações, consulte AWSSAM Especificação. Actualizoutambém o fluxo de trabalho deimplementação com alteraçõesao sam deploy comando.

November 25, 2019

Novas opções para controlaro acesso a API Gatewayatualizações de modelos de APIe API (p. 266)

Adicionadas novas opçõespara controlar o acesso a APIGateway API: IAM permissões,chaves API e políticas derecursos. Para mais informações,consulte Controlo do Acesso aAPI Gateway API. Actualizoutambém dois modelos deapólice: rekognitionfacespolicy eelasticsearchhttppostpolicy. Paramais informações, consulte AWSSAM Modelos de política.

August 29, 2019

Atualizações deintrodução (p. 266)

Atualizado o capítulo Introduçãocom instruções de instalaçãomelhoradas para o AWS SAMCLI e o tutorial Hello World. Paraobter mais informações, consulteo tópico Conceitos básicos sobrea AWS SAM.

July 25, 2019

Controlo do acesso a APIGateway API (p. 266)

Adicionado apoio para controlaro acesso a API Gateway API.Para mais informações, consulteControlo do Acesso a APIGateway API.

March 21, 2019

267

Page 273: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Adicionado sam publish para oAWS SAM CLI (p. 266)

O novo comando sampublish na CLI do AWSSAM simplifica o processopara publicar aplicativos semservidor no AWS ServerlessApplication Repository. Paramais informações, consultePublicar aplicações sem servidorutilizando o AWS SAM CLI.

December 21, 2018

Aplicações aglomeradas esuporte de camadas (p. 266)

Adicionado suporte paraaplicações e camadasaglomeradas. Para maisinformações, consulte Utilizaçãode aplicações com falhas eTrabalhar com camadas.

November 29, 2018

Adicionado sam build para oAWS SAM CLI (p. 266)

O novo sam build noAWS SAM O AMT simplificao processo para compilaraplicações sem servidor comdependências para que possatestar e implementar localmenteestas aplicações. Para maisinformações, consulte Aplicaçõesde construção.

November 19, 2018

Adicionadas novas opções deinstalação para o AWS SAMCLI (p. 266)

Opções de instalaçãoadicionadas de Linuxbrew(Linux), MSI (Windows) eHomebrew (macos) para oAWS SAM CLI. Para maisinformações, consulte Instalar oAWS SAM CLI.

November 7, 2018

Novo guia: (p. 266) Esta é a primeira versão do Guiado desenvolvedor do Modelo deaplicativo sem servidor da AWS.

October 17, 2018

268

Page 274: Application Model AWS Serverless...to build production-ready applications. Next Step Getting Started with AWS SAM (p. 3) 2 AWS Serverless Application Model Developer Guide Installing

Modelo de aplicativo sem servidorda &AWS; Guia do desenvolvedor

Se fornecermos uma tradução da versão em inglês do guia, a versão em inglês prevalecerá caso hajaqualquer conflito entre as versões. A tradução é fornecida com o uso de tradução por máquina.

cclxix