Pengantar pengujian dengan sam local generate-event - AWS Serverless Application Model

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pengantar pengujian dengan sam local generate-event

Gunakan AWS Serverless Application Model sam local generate-event subperintah Command Line Interface (AWS SAMCLI) untuk menghasilkan sampel payload peristiwa untuk didukung. Layanan AWS Anda kemudian dapat memodifikasi dan meneruskan peristiwa ini ke sumber daya lokal untuk pengujian.

Peristiwa adalah objek JSON yang dihasilkan ketika Layanan AWS melakukan tindakan atau tugas. Peristiwa ini berisi informasi spesifik, seperti data yang diproses atau stempel waktu acara. Sebagian besar Layanan AWS menghasilkan acara dan setiap acara layanan diformat secara unik untuk layanannya.

Peristiwa yang dihasilkan oleh satu layanan diteruskan ke layanan lain sebagai sumber acara. Misalnya, item yang ditempatkan di bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) dapat menghasilkan peristiwa. Acara ini kemudian dapat digunakan sebagai sumber peristiwa untuk suatu AWS Lambda fungsi untuk memproses data lebih lanjut.

Peristiwa yang Anda hasilkan sam local generate-event diformat dalam struktur yang sama dengan peristiwa aktual yang dibuat oleh AWS layanan. Anda dapat memodifikasi konten acara ini dan menggunakannya untuk menguji sumber daya dalam aplikasi Anda.

Untuk menggunakansam local generate-event, instal AWS SAMCLI dengan menyelesaikan yang berikut ini:

Sebelum menggunakansam local generate-event, kami merekomendasikan pemahaman dasar tentang hal-hal berikut:

Hasilkan contoh acara

Gunakan AWS SAMCLI sam local generate-event subperintah untuk menghasilkan peristiwa yang didukung Layanan AWS.

Untuk melihat daftar yang didukung Layanan AWS
  1. Jalankan hal berikut:

    $ sam local generate-event
  2. Daftar yang didukung Layanan AWS akan ditampilkan. Berikut adalah contohnya:

    $ sam local generate-event ... Commands: alb alexa-skills-kit alexa-smart-home apigateway appsync batch cloudformation ...
Untuk menghasilkan acara lokal
  1. Jalankan sam local generate-event dan berikan nama layanan yang didukung. Ini akan menampilkan daftar jenis acara yang dapat Anda hasilkan. Berikut adalah contohnya:

    $ 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
  2. Untuk menghasilkan contoh acara, jalankansam local generate-event, berikan layanan dan jenis acara.

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

    Berikut adalah contohnya:

    $ 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": "example-bucket", "ownerIdentity": { "principalId": "EXAMPLE" }, "arn": "arn:aws:s3:::example-bucket" }, "object": { "key": "test/key", "size": 1024, "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901" } } } ] }

Contoh peristiwa ini berisi nilai placeholder. Anda dapat memodifikasi nilai-nilai ini untuk mereferensikan sumber daya aktual dalam aplikasi atau nilai Anda untuk membantu pengujian lokal.

Untuk memodifikasi contoh peristiwa
  1. Anda dapat memodifikasi contoh peristiwa di command prompt. Untuk melihat opsi Anda, jalankan yang berikut ini:

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

    Berikut adalah contohnya:

    $ 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.
  2. Gunakan salah satu opsi ini di prompt perintah untuk memodifikasi payload acara sampel Anda. Berikut adalah contohnya:

    $ sam local generate-event s3 put--bucket MyBucket { "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": "MyBucket", "ownerIdentity": { "principalId": "EXAMPLE" }, "arn": "arn:aws:s3:::MyBucket" }, "object": { "key": "test/key", "size": 1024, "eTag": "0123456789abcdef0123456789abcdef", "sequencer": "0A1B2C3D4E5F678901" } } } ] }

Gunakan peristiwa yang dihasilkan untuk pengujian lokal

Simpan peristiwa yang Anda hasilkan secara lokal dan gunakan sam local subperintah lain untuk menguji.

Untuk menyimpan acara yang Anda hasilkan secara lokal
  • Jalankan hal berikut:

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

    Berikut ini adalah contoh acara yang disimpan sebagai s3.json file di events folder proyek kami.

    sam-app$ sam local generate-event s3 put --bucket MyBucket > events/s3.json
Untuk menggunakan peristiwa yang dihasilkan untuk pengujian lokal
  • Lewati acara dengan sam local subperintah lain dengan menggunakan --event opsi.

    Berikut ini adalah contoh penggunaan s3.json acara untuk memanggil fungsi Lambda kami secara lokal:

    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

Pelajari selengkapnya

Untuk daftar semua sam local generate-event opsi, lihatsam local generate-event.

Untuk demo penggunaansam local, lihat AWS SAM untuk pengembangan lokal. Menguji AWS Cloud sumber daya dari lingkungan pengembangan lokal di Sesi Tanah Tanpa Server dengan seri SAM aktif. YouTube