

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Introducción a las pruebas con sam local generate-event
<a name="using-sam-cli-local-generate-event"></a>

Utilice el AWS Serverless Application Model `sam local generate-event` subcomando Command Line Interface (AWS SAMCLI) para generar muestras de carga útil de eventos compatibles. Servicios de AWS A continuación, puede modificar estos eventos y transferirlos a los recursos locales para probarlos.
+ Para obtener una introducción al, consulte AWS SAMCLI [¿Qué es el? AWS SAMCLI](what-is-sam-overview.md#what-is-sam-cli)
+ Para ver una lista de opciones de comandos `sam local generate-event`, consulta [sam local generate-event](sam-cli-command-reference-sam-local-generate-event.md).

Un *evento* es un objeto JSON que se genera cuando un Servicio de AWS realiza una acción o tarea. Estos eventos contienen información específica, como los datos que se procesaron o la marca de tiempo del evento. La mayoría de Servicios de AWS generan eventos y los eventos de cada servicio tienen un formato exclusivo para su servicio.

Los eventos generados por un servicio se transfieren a otros servicios como *fuente de eventos*. Por ejemplo, un artículo colocado en un bucket de Amazon Simple Storage Service (Amazon S3) puede generar un evento. A continuación, este evento se puede utilizar como fuente de eventos para que una función de AWS Lambda siga procesando los datos.

Los eventos con `sam local generate-event` los que se generan tienen el mismo formato que los eventos reales creados por el AWS servicio. Puede modificar el contenido de estos eventos y usarlos para probar los recursos de la aplicación.

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

Para usar `sam local generate-event`, completa lo siguiente para instalar la CLI de AWS SAM:
+ [AWS SAM requisitos previos](prerequisites.md).
+ [Instala la AWS SAM CLI](install-sam-cli.md).

Antes de usar `sam local generate-event`, se recomienda tener conocimientos básicos de lo siguiente:
+ [Configuración de la AWS SAM de CLI](using-sam-cli-configure.md).
+ [Crea tu aplicación en AWS SAM](using-sam-cli-init.md).
+ [Introducción a la construcción con AWS SAM](using-sam-cli-build.md).
+ [Introducción a la implementación con AWS SAM](using-sam-cli-deploy.md).

## Generar eventos de ejemplo
<a name="using-sam-cli-local-generate-event-generate"></a>

Utilice el AWS SAMCLI `sam local generate-event` subcomando para generar los eventos compatibles. Servicios de AWS

**Para ver una lista de los compatibles Servicios de AWS**

1. Ejecuta lo siguiente:

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

1. Aparecerá la lista de compatibles Servicios de AWS . A continuación, se muestra un ejemplo:

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

**Para generar un evento local**

1. Ejecute `sam local generate-event` y proporciona el nombre del servicio compatible. Esto mostrará una lista de tipos de eventos que puede generar. A continuación, se muestra un ejemplo:

   ```
   $ 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. Para generar el evento de muestra `sam local generate-event`, ejecuta e indique el servicio y el tipo de evento.

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

   A continuación, se muestra un ejemplo:

   ```
   $ 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"
           }
         }
       }
     ]
   }
   ```

Estos eventos de ejemplo contienen valores de marcador de posición. Puede modificar estos valores para que hagan referencia a los recursos reales de la aplicación o a los valores para facilitar las testeo local.

**Para modificar un evento de muestra**

1. Puede modificar eventos de ejemplo en la línea de comandos. Para ver sus opciones, ejecuta lo siguiente:

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

   A continuación, se muestra un ejemplo:

   ```
   $ 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. Utiliza cualquiera de estas opciones en la línea de comandos para modificar la carga útil del evento de muestra. A continuación, se muestra un ejemplo:

   ```
   $ 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"
           }
         }
       }
     ]
   }
   ```

## Utiliza los eventos generados para realizar testeo local
<a name="using-sam-cli-local-generate-event-use"></a>

Guarde los eventos generados localmente y utiliza otros subcomandos `sam local` para realizar las pruebas.

**Para guardar los eventos generados localmente**
+ Ejecuta lo siguiente:

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

  El siguiente es un ejemplo de un evento que se guarda como un archivo `s3.json` en la carpeta `events` de nuestro proyecto.

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

**Para usar un evento generado para realizar testeo local**
+ Pase el evento con otros subcomandos `sam local` mediante la opción `--event`.

  A continuación, se muestra un ejemplo del uso del evento `s3.json` para invocar la función de Lambda de forma local:

  ```
  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
  ```

## Más información
<a name="using-sam-cli-local-generate-event-learn"></a>

Para obtener una lista de todas las opciones `sam local generate-event`, consulta [sam local generate-event](sam-cli-command-reference-sam-local-generate-event.md).

Para ver una demostración del uso de `sam local`, consulta [Desarrollo local con AWS SAM . Probando Nube de AWS recursos de entornos de desarrollo locales](https://www.youtube.com/watch?v=NzPqMrdgD1s&list=PLJo-rJlep0ED198FJnTzhIB5Aut_1vDAd&index=24) en la *serie Serverless Land Sessions with SAM en YouTube* adelante.