

 AWS SDK untuk JavaScript V2 telah mencapai end-of-support. Kami menyarankan Anda bermigrasi ke [AWS SDK untuk JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat [pengumuman](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/) ini.

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

# Mengirim Acara ke CloudWatch Acara Amazon
<a name="cloudwatch-examples-sending-events"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**Contoh kode Node.js ini menunjukkan:**
+ Cara membuat dan memperbarui aturan yang digunakan untuk memicu peristiwa.
+ Bagaimana mendefinisikan satu atau lebih target untuk menanggapi suatu peristiwa.
+ Cara mengirim peristiwa yang dicocokkan dengan target untuk ditangani.

## Skenario
<a name="cloudwatch-examples-sending-events-scenario"></a>

CloudWatch Acara memberikan aliran peristiwa sistem yang mendekati real-time yang menjelaskan perubahan dalam sumber daya Amazon Web Services ke salah satu dari berbagai target. Dengan menggunakan aturan sederhana, Anda dapat mencocokkan acara dan meruteknya ke satu atau beberapa fungsi atau aliran target.

Dalam contoh ini, serangkaian modul Node.js digunakan untuk mengirim peristiwa ke CloudWatch Acara. Modul Node.js menggunakan SDK JavaScript untuk mengelola instance menggunakan metode kelas `CloudWatchEvents` klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putRule-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putRule-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putTargets-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putTargets-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putEvents-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putEvents-property)

Untuk informasi selengkapnya tentang CloudWatch Acara, lihat [Menambahkan Acara dengan PutEvents](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/AddEventsPutEvents.html) di *Panduan Pengguna CloudWatch Acara Amazon*.

## Tugas Prasyarat
<a name="cloudwatch-examples-sending-events-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Instal Node.js. Untuk informasi selengkapnya tentang menginstal Node.js, lihat [situs web Node.js](https://nodejs.org).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat. [Memuat Kredensial di Node.js dari File Kredensial Bersama](loading-node-credentials-shared.md)
+ Buat fungsi Lambda menggunakan cetak biru **hello-world** untuk dijadikan target acara. Untuk mempelajari caranya, lihat [Langkah 1: Membuat AWS Lambda fungsi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/LogEC2InstanceState.html) di *Panduan Pengguna CloudWatch Acara Amazon*.
+ Buat peran IAM yang kebijakannya memberikan izin untuk CloudWatch Acara dan yang termasuk `events.amazonaws.com` sebagai entitas tepercaya. Untuk informasi selengkapnya tentang membuat peran IAM, lihat [Membuat Peran untuk Mendelegasikan Izin ke AWS Layanan di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) *IAM*.

Gunakan kebijakan peran berikut saat membuat peran IAM.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "CloudWatchEventsFullAccess",
         "Effect": "Allow",
         "Action": "events:*",
         "Resource": "*"
      },
      {
         "Sid": "IAMPassRoleForCloudWatchEvents",
         "Effect": "Allow",
         "Action": "iam:PassRole",
         "Resource": "arn:aws:iam::*:role/AWS_Events_Invoke_Targets"
      }      
   ]
}
```

------

Gunakan hubungan kepercayaan berikut saat membuat peran IAM.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "Service": "events.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
      }      
   ]
}
```

------

## Membuat Aturan Terjadwal
<a name="cloudwatch-examples-sending-events-rules"></a>

Buat modul Node.js dengan nama file`cwe_putrule.js`. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch Acara, buat objek `AWS.CloudWatchEvents` layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk menentukan aturan terjadwal baru, yang meliputi: 
+ Nama untuk aturan
+ ARN dari peran IAM yang Anda buat sebelumnya
+ Ekspresi untuk menjadwalkan pemicu aturan setiap lima menit

Panggil `putRule` metode untuk membuat aturan. Callback mengembalikan ARN dari aturan baru atau yang diperbarui.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create CloudWatchEvents service object
var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" });

var params = {
  Name: "DEMO_EVENT",
  RoleArn: "IAM_ROLE_ARN",
  ScheduleExpression: "rate(5 minutes)",
  State: "ENABLED",
};

cwevents.putRule(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.RuleArn);
  }
});
```

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

```
node cwe_putrule.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-events/cwe_putrule.js).

## Menambahkan Target AWS Lambda Fungsi
<a name="cloudwatch-examples-sending-events-targets"></a>

Buat modul Node.js dengan nama file`cwe_puttargets.js`. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch Acara, buat objek `AWS.CloudWatchEvents` layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk menentukan aturan yang ingin Anda lampirkan target, termasuk ARN dari fungsi Lambda yang Anda buat. Panggil `putTargets` metode objek `AWS.CloudWatchEvents` layanan.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create CloudWatchEvents service object
var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" });

var params = {
  Rule: "DEMO_EVENT",
  Targets: [
    {
      Arn: "LAMBDA_FUNCTION_ARN",
      Id: "myCloudWatchEventsTarget",
    },
  ],
};

cwevents.putTargets(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

```
node cwe_puttargets.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-events/cwe_puttargets.js).

## Mengirim Acara
<a name="cloudwatch-examples-sending-events-putevents"></a>

Buat modul Node.js dengan nama file`cwe_putevents.js`. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch Acara, buat objek `AWS.CloudWatchEvents` layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk mengirim acara. Untuk setiap acara, sertakan sumber acara, sumber daya apa pun yang terpengaruh oleh acara tersebut, dan detail untuk acara tersebut. ARNs Panggil `putEvents` metode objek `AWS.CloudWatchEvents` layanan.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create CloudWatchEvents service object
var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" });

var params = {
  Entries: [
    {
      Detail: '{ "key1": "value1", "key2": "value2" }',
      DetailType: "appRequestSubmitted",
      Resources: ["RESOURCE_ARN"],
      Source: "com.company.app",
    },
  ],
};

cwevents.putEvents(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Entries);
  }
});
```

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

```
node cwe_putevents.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-events/cwe_putevents.js).