

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à.

# Introduzione ai test con sam local generate-event
<a name="using-sam-cli-local-generate-event"></a>

Utilizzate il AWS Serverless Application Model `sam local generate-event` sottocomando Command Line Interface (AWS SAMCLI) per generare esempi di payload di eventi supportati. Servizi AWS Potete quindi modificare e passare questi eventi alle risorse locali per i test.
+ Per un'introduzione a AWS SAMCLI, vedere [Che cos'è il? AWS SAMCLI](what-is-sam-overview.md#what-is-sam-cli)
+ Per un elenco delle opzioni di `sam local generate-event` comando, vedere[sam local generate-event](sam-cli-command-reference-sam-local-generate-event.md).

Un *evento* è un oggetto JSON che viene generato quando un Servizio AWS esegue un'azione o un'attività. Questi eventi contengono informazioni specifiche, come i dati elaborati o il timestamp dell'evento. La maggior parte Servizi AWS genera eventi e gli eventi di ogni servizio sono formattati in modo univoco per il relativo servizio.

Gli eventi generati da un servizio vengono passati ad altri servizi come fonte di *eventi*. Ad esempio, un articolo inserito in un bucket Amazon Simple Storage Service (Amazon S3) può generare un evento. Questo evento può quindi essere utilizzato come origine dell'evento per una AWS Lambda funzione che elabora ulteriormente i dati.

Gli eventi generati con `sam local generate-event` sono formattati nella stessa struttura degli eventi effettivi creati dal AWS servizio. È possibile modificare il contenuto di questi eventi e utilizzarli per testare le risorse dell'applicazione.

## Prerequisiti
<a name="using-sam-cli-local-generate-event-prerequisites"></a>

Per utilizzarlo`sam local generate-event`, AWS SAMCLI installate il completando quanto segue:
+ [AWS SAM prerequisiti](prerequisites.md).
+ [Installa il AWS SAMCLI](install-sam-cli.md).

Prima dell'uso`sam local generate-event`, si consiglia una conoscenza di base di quanto segue:
+ [Configurazione del AWS SAMCLI](using-sam-cli-configure.md).
+ [Crea la tua candidatura in AWS SAM](using-sam-cli-init.md).
+ [Introduzione alla costruzione con AWS SAM](using-sam-cli-build.md).
+ [Introduzione alla distribuzione con AWS SAM](using-sam-cli-deploy.md).

## Genera eventi di esempio
<a name="using-sam-cli-local-generate-event-generate"></a>

Usa il AWS SAMCLI `sam local generate-event` sottocomando per generare eventi per i supporti Servizi AWS.

**Per visualizzare un elenco di quelli supportati Servizi AWS**

1. Esegui il seguente codice:

   ```
   $ sam local generate-event
   ```

1.  Servizi AWS Verrà visualizzato l'elenco dei supportati. Di seguito è riportato un esempio:

   ```
   $ sam local generate-event
   ...
   Commands:
     alb
     alexa-skills-kit
     alexa-smart-home
     apigateway
     appsync
     batch
     cloudformation
     ...
   ```

**Per generare un evento locale**

1. Esegui `sam local generate-event` e fornisci il nome del servizio supportato. Verrà visualizzato un elenco di tipi di eventi che è possibile generare. Di seguito è riportato un esempio:

   ```
   $ sam local generate-event s3
   
   Usage: sam local generate-event s3 [OPTIONS] COMMAND [ARGS]...
   
   Options:
     -h, --help  Show this message and exit.
   
   Commands:
     batch-invocation  Generates an Amazon S3 Batch Operations Invocation Event
     delete            Generates an Amazon S3 Delete Event
     put               Generates an Amazon S3 Put Event
   ```

1. Per generare l'evento di esempio, esegui`sam local generate-event`, fornendo il servizio e il tipo di evento.

   ```
   $ sam local generate-event <service> <event>
   ```

   Di seguito è riportato un esempio:

   ```
   $ sam local generate-event s3 put
   {
     "Records": [
       {
         "eventVersion": "2.0",
         "eventSource": "aws:s3",
         "awsRegion": "us-east-1",
         "eventTime": "1970-01-01T00:00:00.000Z",
         "eventName": "ObjectCreated:Put",
         "userIdentity": {
           "principalId": "EXAMPLE"
         },
         "requestParameters": {
           "sourceIPAddress": "127.0.0.1"
         },
         "responseElements": {
           "x-amz-request-id": "EXAMPLE123456789",
           "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH"
         },
         "s3": {
           "s3SchemaVersion": "1.0",
           "configurationId": "testConfigRule",
           "bucket": {
             "name": "sam-s3-demo-bucket",
             "ownerIdentity": {
               "principalId": "EXAMPLE"
             },
             "arn": "arn:aws:s3:::sam-s3-demo-bucket"
           },
           "object": {
             "key": "test/key",
             "size": 1024,
             "eTag": "0123456789abcdef0123456789abcdef",
             "sequencer": "0A1B2C3D4E5F678901"
           }
         }
       }
     ]
   }
   ```

Questi eventi di esempio contengono valori segnaposto. È possibile modificare questi valori in modo che facciano riferimento alle risorse effettive dell'applicazione o ai valori per facilitare i test locali.

**Per modificare un evento di esempio**

1. È possibile modificare gli eventi di esempio al prompt dei comandi. Per visualizzare le opzioni disponibili, esegui quanto segue:

   ```
   $ sam local generate-event <service> <event> --help
   ```

   Di seguito è riportato un esempio:

   ```
   $ sam local generate-event s3 put --help
   
   Usage: sam local generate-event s3 put [OPTIONS]
   
   Options:
     --region TEXT       Specify the region name you'd like, otherwise the
                         default = us-east-1
     --partition TEXT    Specify the partition name you'd like, otherwise the
                         default = aws
     --bucket TEXT       Specify the bucket name you'd like, otherwise the
                         default = example-bucket
     --key TEXT          Specify the key name you'd like, otherwise the default =
                         test/key
     --debug             Turn on debug logging to print debug message generated
                         by AWS SAM CLI and display timestamps.
     --config-file TEXT  Configuration file containing default parameter values.
                         [default: samconfig.toml]
     --config-env TEXT   Environment name specifying default parameter values in
                         the configuration file.  [default: default]
     -h, --help          Show this message and exit.
   ```

1. Utilizzate una di queste opzioni al prompt dei comandi per modificare il payload dell'evento di esempio. Di seguito è riportato un esempio:

   ```
   $ sam local generate-event s3 put--bucket sam-s3-demo-bucket
   
   {
     "Records": [
       {
         "eventVersion": "2.0",
         "eventSource": "aws:s3",
         "awsRegion": "us-east-1",
         "eventTime": "1970-01-01T00:00:00.000Z",
         "eventName": "ObjectCreated:Put",
         "userIdentity": {
           "principalId": "EXAMPLE"
         },
         "requestParameters": {
           "sourceIPAddress": "127.0.0.1"
         },
         "responseElements": {
           "x-amz-request-id": "EXAMPLE123456789",
           "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH"
         },
         "s3": {
           "s3SchemaVersion": "1.0",
           "configurationId": "testConfigRule",
           "bucket": {
             "name": "sam-s3-demo-bucket",
             "ownerIdentity": {
               "principalId": "EXAMPLE"
             },
             "arn": "arn:aws:s3:::sam-s3-demo-bucket"
           },
           "object": {
             "key": "test/key",
             "size": 1024,
             "eTag": "0123456789abcdef0123456789abcdef",
             "sequencer": "0A1B2C3D4E5F678901"
           }
         }
       }
     ]
   }
   ```

## Usa gli eventi generati per i test locali
<a name="using-sam-cli-local-generate-event-use"></a>

Salva gli eventi generati localmente e usa altri `sam local` sottocomandi per eseguire i test.

**Per salvare gli eventi generati localmente**
+ Esegui il seguente codice:

  ```
  $ sam local generate-event <service> <event> <event-option> > <filename.json>
  ```

  Di seguito è riportato un esempio di evento salvato come `s3.json` file nella `events` cartella del nostro progetto.

  ```
  sam-app$ sam local generate-event s3 put --bucket amzn-s3-demo-bucket > events/s3.json
  ```

**Per utilizzare un evento generato per i test locali**
+ Passa l'evento con altri `sam local` sottocomandi utilizzando l'`--event`opzione.

  Di seguito è riportato un esempio di utilizzo dell'`s3.json`evento per richiamare la nostra funzione Lambda localmente:

  ```
  sam-app$ sam local invoke --event events/s3.json S3JsonLoggerFunction
  
  Invoking src/handlers/s3-json-logger.s3JsonLoggerHandler (nodejs18.x)
  Local image is up-to-date
  Using local image: public.ecr.aws/lambda/nodejs:18-rapid-x86_64.
  
  Mounting /Users/.../sam-app/.aws-sam/build/S3JsonLoggerFunction as /var/task:ro,delegated, inside runtime container
  START RequestId: f4f45b6d-2ec6-4235-bc7b-495ec2ae0128 Version: $LATEST
  END RequestId: f4f45b6d-2ec6-4235-bc7b-495ec2ae0128
  REPORT RequestId: f4f45b6d-2ec6-4235-bc7b-495ec2ae0128  Init Duration: 1.23 ms  Duration: 9371.93 ms      Billed Duration: 9372 ms        Memory Size: 128 MB     Max Memory Used: 128 MB
  ```

## Ulteriori informazioni
<a name="using-sam-cli-local-generate-event-learn"></a>

Per un elenco di tutte le `sam local generate-event` opzioni, consulta[sam local generate-event](sam-cli-command-reference-sam-local-generate-event.md).

Per una dimostrazione dell'utilizzo`sam local`, vedi [AWS SAM per lo sviluppo locale. Test Cloud AWS delle risorse provenienti da ambienti di sviluppo locali](https://www.youtube.com/watch?v=NzPqMrdgD1s&list=PLJo-rJlep0ED198FJnTzhIB5Aut_1vDAd&index=24) nella *serie Serverless Land Sessions with SAM on YouTube*.