

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

# Processe eventos do DynamoDB com AWS SAM
<a name="serverless-example-ddb"></a>



Com esse aplicativo de exemplo, você se baseia no que aprendeu na visão geral e no guia de início rápido e instala outro aplicativo de exemplo. Esse aplicativo consiste em uma função do Lambda que é invocada por uma origem do evento de tabela do DynamoDB. A função do Lambda é muito simples: ela registra dados que foram transmitidos pela mensagem de origem do evento.

Este exercício mostra como imitar mensagens de origem de eventos que são passadas para as funções do Lambda quando são invocadas.



## Antes de começar
<a name="gs-ex2-prereq"></a>

Verifique se você concluiu a configuração necessária no [Instale o AWS SAM CLI](install-sam-cli.md).

## Etapa 1: Inicializar o aplicativo
<a name="gs-ex2-setup-local-app"></a>

Nesta seção, você baixa o pacote do aplicativo, que consiste em um AWS SAM modelo e código do aplicativo.

**Como inicializar o aplicativo**

1. Execute o seguinte comando em um prompt de comando do AWS SAM CLI.

   ```
   sam init \
   --location gh:aws-samples/cookiecutter-aws-sam-dynamodb-python \
   --no-input
   ```

   Observe que `gh:` no comando acima é expandido para o GitHub url`https://github.com/`.

1. Revise o conteúdo do diretório criado pelo comando (`dynamodb_event_reader/`): 
   + `template.yaml`— Define dois AWS recursos que o aplicativo Read DynamoDB precisa: uma função Lambda e uma tabela do DynamoDB. O modelo também define o mapeamento entre os dois recursos.
   + `read_dynamodb_event/` — diretório – contém o código do aplicativo DynamoDB.

## Etapa 2: Testar o aplicativo localmente
<a name="gs-ex2-test-locally"></a>

Para testes locais, use o AWS SAMCLI para gerar um evento de amostra do DynamoDB e invocar a função do Lambda:

```
sam local generate-event dynamodb update | sam local invoke --event - ReadDynamoDBEvent
```

O `generate-event` comando cria uma mensagem de origem do evento de teste, como as mensagens que são criadas quando todos os componentes são implantados na AWS nuvem. Essa mensagem de origem do evento é canalizada para a função ReadDynamo DBEvent Lambda.

Verifique se as mensagens esperadas foram impressas no console, com base no código-fonte em `app.py`.

## Etapa 3: Empacotar o aplicativo
<a name="gs-ex2-setup-pacakge-app"></a>

Depois de testar seu aplicativo localmente, você usa o AWS SAMCLI para criar um pacote de implantação, que você usa para implantar o aplicativo AWS na nuvem.

**Para criar o 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 um bucket do S3 existente, ignore esta etapa.

   ```
   aws s3 mb s3://bucketname
   ```

1. Crie o pacote de implantação ao executar o seguinte comando `package` da CLI do prompt do comando. 

   ```
   sam package \
       --template-file template.yaml \
       --output-template-file packaged.yaml \
       --s3-bucket bucketname
   ```

   Você especifica o novo arquivo de modelo `packaged.yaml`, ao implantar o aplicativo na próxima etapa.

## Etapa 4: Implantar um aplicativo
<a name="gs-ex2-setup-deploy-app"></a>

Agora que você criou o pacote de implantação, use-o para implantar o aplicativo na AWS nuvem. Em seguida, você testa o aplicativo.

**Para implantar o aplicativo sem servidor na nuvem AWS**
+ No AWS SAMCLI, use o comando `deploy` CLI para implantar todos os recursos que você definiu no modelo. 

  

  ```
  sam deploy \
      --template-file packaged.yaml \
      --stack-name sam-app \
      --capabilities CAPABILITY_IAM \
      --region us-east-1
  ```

  No comando, o parâmetro `--capabilities` permite que o AWS CloudFormation crie um perfil do IAM. 

  CloudFormation cria os AWS recursos definidos no modelo. Você pode acessar os nomes desses recursos no CloudFormation console.

**Para testar o aplicativo sem servidor na nuvem AWS**

1. Abra o console do DynamoDB.

1. Insira um registro na tabela que você acabou de criar.

1. Vá até a guia **Métricas** da tabela e escolha **Exibir todas as CloudWatch métricas**. No CloudWatch console, escolha **Logs** para poder visualizar a saída do log.

## Próximas etapas
<a name="gs-ex2-setup-deploy-app-next-steps"></a>

Para continuar aprendendo sobre isso AWS SAM, consulte os seguintes recursos:
+ **[Serverless Land](https://serverlessland.com/patterns?framework=AWS+SAM)** — Site que reúne padrões sem servidor, exemplos de código e recursos de aprendizado específicos para aplicativos SAM. AWS 