

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Elabora gli eventi DynamoDB con AWS SAM
<a name="serverless-example-ddb"></a>



Con questa applicazione di esempio, si basa su ciò che è stato appreso nella panoramica e nella guida rapida e si installa un'altra applicazione di esempio. Questa applicazione è costituita da una funzione Lambda richiamata da una sorgente di eventi di tabella DynamoDB. La funzione Lambda è molto semplice: registra i dati che sono stati trasmessi tramite il messaggio di origine dell'evento.

Questo esercizio mostra come imitare i messaggi di origine degli eventi che vengono passati alle funzioni Lambda quando vengono richiamate.



## Prima di iniziare
<a name="gs-ex2-prereq"></a>

Assicurati di aver completato la configurazione richiesta in. [Installa il AWS SAMCLI](install-sam-cli.md)

## Passaggio 1: inizializza l'applicazione
<a name="gs-ex2-setup-local-app"></a>

In questa sezione, si scarica il pacchetto dell'applicazione, che consiste in un AWS SAM modello e un codice dell'applicazione.

**Per inizializzare l'applicazione**

1. Eseguite il comando seguente al AWS SAMCLI prompt dei comandi.

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

   Nota che `gh:` nel comando precedente viene espanso all' GitHub URL`https://github.com/`.

1. Esaminare il contenuto della directory creata dal comando (`dynamodb_event_reader/`): 
   + `template.yaml`— Definisce due AWS risorse necessarie all'applicazione Read DynamoDB: una funzione Lambda e una tabella DynamoDB. Il modello definisce anche la mappatura tra le due risorse.
   + `read_dynamodb_event/`directory — Contiene il codice dell'applicazione DynamoDB.

## Fase 2: Testare l'applicazione localmente
<a name="gs-ex2-test-locally"></a>

Per i test locali, usa per AWS SAMCLI generare un evento DynamoDB di esempio e richiamare la funzione Lambda:

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

Il `generate-event` comando crea un messaggio sorgente dell'evento di test come i messaggi che vengono creati quando tutti i componenti vengono distribuiti nel Cloud. AWS Questo messaggio di origine dell'evento viene reindirizzato alla funzione ReadDynamo DBEvent Lambda.

Verifica che i messaggi previsti vengano stampati sulla console, in base al codice sorgente in. `app.py`

## Fase 3: Package dell'applicazione
<a name="gs-ex2-setup-pacakge-app"></a>

Dopo aver testato l'applicazione localmente, si utilizza AWS SAMCLI per creare un pacchetto di distribuzione, da utilizzare per distribuire l'applicazione nel AWS cloud.

**Per creare un pacchetto di distribuzione Lambda**

1. Creare un bucket S3 nella posizione in cui si desidera salvare il codice nel pacchetto. Se si desidera utilizzare un bucket S3 esistente, ignorare questo passaggio.

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

1. Crea il pacchetto di distribuzione eseguendo il seguente comando `package` CLI al prompt dei comandi. 

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

   Il nuovo file modello viene specificato quando `packaged.yaml` si distribuisce l'applicazione nel passaggio successivo.

## Fase 4: Distribuire l'applicazione
<a name="gs-ex2-setup-deploy-app"></a>

Ora che hai creato il pacchetto di distribuzione, lo usi per distribuire l'applicazione nel cloud. AWS Quindi testate l'applicazione.

**Per distribuire l'applicazione serverless nel cloud AWS**
+ In AWS SAMCLI, utilizza il comando `deploy` CLI per distribuire tutte le risorse definite nel modello. 

  

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

  Nel comando, il `--capabilities` parametro consente di AWS CloudFormation creare un ruolo IAM. 

  CloudFormation crea le AWS risorse definite nel modello. È possibile accedere ai nomi di queste risorse nella CloudFormation console.

**Per testare l'applicazione serverless nel Cloud AWS**

1. Aprire la console DynamoDB.

1. Inserisci un record nella tabella che hai appena creato.

1. Vai alla scheda **Metriche** della tabella e scegli **Visualizza tutte le CloudWatch metriche**. Nella CloudWatch console, scegli **Registri** per poter visualizzare l'output del registro.

## Fasi successive
<a name="gs-ex2-setup-deploy-app-next-steps"></a>

Per continuare a saperne di più AWS SAM, consulta le seguenti risorse:
+ **[Serverless Land](https://serverlessland.com/patterns?framework=AWS+SAM)**: sito che riunisce modelli serverless, esempi di codice e risorse di apprendimento specifiche per le applicazioni AWS SAM.