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 generate-event en local en sam
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 SAM CLI?
-
Para ver una lista de opciones de comandos
sam local generate-event, consulta sam local generate-event.
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. Luego, este evento se puede usar como fuente de eventos para que una función de AWS Lambda evento procese los datos aún más.
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 usar sam local generate-event, completa lo siguiente para instalar la CLI de AWS SAM:
Antes de usar sam local generate-event, se recomienda tener conocimientos básicos de lo siguiente:
Generar eventos de ejemplo
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
-
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-eventy 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-eventUsage: 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": "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" } } } ] }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-eventUsage: 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.s3put--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 sam-s3-demo-bucket"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
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.jsonen la carpetaeventsde nuestro proyecto.sam-app$sam local generate-events3 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 localmediante la opción--event.A continuación, se muestra un ejemplo del uso del evento
s3.jsonpara invocar la función de Lambda de forma local:sam-app$sam local invoke --eventInvoking 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