

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
<a name="using-sam-cli-local-generate-event"></a>

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.
+ Untuk pengantar AWS SAMCLI, lihat [Apa itu AWS SAMCLI?](what-is-sam-overview.md#what-is-sam-cli)
+ Untuk daftar opsi `sam local generate-event` perintah, lihat[sam local generate-event](sam-cli-command-reference-sam-local-generate-event.md).

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

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

Untuk menggunakan`sam local generate-event`, instal AWS SAMCLI dengan menyelesaikan yang berikut ini:
+ [AWS SAM prasyarat](prerequisites.md).
+ [Instal AWS SAMCLI](install-sam-cli.md).

Sebelum menggunakan`sam local generate-event`, kami merekomendasikan pemahaman dasar tentang hal-hal berikut:
+ [Mengkonfigurasi AWS SAMCLI](using-sam-cli-configure.md).
+ [Buat aplikasi Anda di AWS SAM](using-sam-cli-init.md).
+ [Pengantar bangunan dengan AWS SAM](using-sam-cli-build.md).
+ [Pengantar penerapan dengan AWS SAM](using-sam-cli-deploy.md).

## Hasilkan contoh acara
<a name="using-sam-cli-local-generate-event-generate"></a>

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

1. Daftar yang didukung Layanan AWS akan ditampilkan. Berikut ini 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 ini 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
   ```

1. Untuk menghasilkan contoh acara, jalankan`sam local generate-event`, berikan layanan dan jenis acara.

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

   Berikut ini 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": "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"
           }
         }
       }
     ]
   }
   ```

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

1. Gunakan salah satu opsi ini di prompt perintah untuk memodifikasi payload acara sampel Anda. Berikut ini adalah contohnya:

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

## Gunakan peristiwa yang dihasilkan untuk pengujian lokal
<a name="using-sam-cli-local-generate-event-use"></a>

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 amzn-s3-demo-bucket > 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
<a name="using-sam-cli-local-generate-event-learn"></a>

Untuk daftar semua `sam local generate-event` opsi, lihat[sam local generate-event](sam-cli-command-reference-sam-local-generate-event.md).

Untuk demo penggunaan`sam local`, lihat [AWS SAM untuk pengembangan lokal. Menguji AWS Cloud sumber daya dari lingkungan pengembangan lokal](https://www.youtube.com/watch?v=NzPqMrdgD1s&list=PLJo-rJlep0ED198FJnTzhIB5Aut_1vDAd&index=24) di *Sesi Tanah Tanpa Server dengan seri SAM aktif*. YouTube