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
Utilice la interfaz de línea de AWS Serverless Application Model comandos (AWS SAM CLI) sam local generate-event
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 una introducción al AWS SAM CLI, consulte ¿Qué es la AWS SAM CLI?
-
Para ver una lista de opciones de comandos
sam local generate-event
, consulta sam local generate-event.
Un evento es un JSON objeto que se genera cuando una persona 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.
Para usarlosam local generate-event
, instale el AWS SAM CLI completando lo siguiente:
Antes de usar sam local generate-event
, se recomienda tener conocimientos básicos de lo siguiente:
Generar eventos de ejemplo
Utilice el AWS SAM CLI sam local generate-event
subcomando para generar eventos compatibles Servicios de AWS.
Para ver una lista de los compatibles Servicios de AWS
-
Ejecuta lo siguiente:
$
sam local generate-event
-
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
-
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
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 Events3
-
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
{ "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": "amzn-s3-demo-bucket", "ownerIdentity": { "principalId": "EXAMPLE" }, "arn": "arn:aws:s3:::amzn-s3-demo-bucket" }, "object": { "key": "test/key", "size": 1024, "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901" } } } ] }s3 put
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
-
Puede modificar eventos de ejemplo en la línea de comandos. Para ver sus opciones, ejecuta lo siguiente:
$
sam local generate-event
<service>
<event>
--helpA continuación, se muestra un ejemplo:
$
sam local generate-event
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.s3
put
--help -
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
{ "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":s3 put--bucket amzn-s3-demo-bucket
"amzn-s3-demo-bucket"
, "ownerIdentity": { "principalId": "EXAMPLE" }, "arn": "arn:aws:s3:::amzn-s3-demo-bucket" }, "object": { "key": "test/key", "size": 1024, "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901" } } } ] }
Utiliza los eventos generados para realizar testeo local
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 carpetaevents
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
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 MBevents/s3.json S3JsonLoggerFunction
Más información
Para obtener una lista de todas las opciones sam local generate-event
, consulta sam local
generate-event.
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