

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

# Menggunakan AWS Lambda untuk menangani EventBridge acara
<a name="using_lambda"></a>

Anda dapat menggunakan Amazon EBS dan Amazon EventBridge untuk mengotomatiskan alur kerja pencadangan data Anda. Ini mengharuskan Anda untuk membuat kebijakan IAM, AWS Lambda fungsi untuk menangani acara, dan EventBridge aturan yang cocok dengan peristiwa yang masuk dan merutekkannya ke fungsi Lambda.

Prosedur berikut menggunakan peristiwa `createSnapshot` untuk menyalin snapshot yang sudah selesai secara otomatis ke Wilayah lain untuk pemulihan bencana. 

**Untuk menyalin snapshot yang sudah selesai ke Wilayah lain**

1. Buat kebijakan IAM, seperti yang ditunjukkan dalam contoh berikut, untuk memberikan izin untuk menggunakan `CopySnapshot` tindakan dan menulis ke log. EventBridge Tetapkan kebijakan kepada pengguna yang akan menangani EventBridge acara tersebut.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents"
         ],
         "Resource": "arn:aws:logs:*:*:*"
       },
       {
         "Effect": "Allow",
         "Action": [
           "ec2:CopySnapshot"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

1. Tentukan fungsi di Lambda yang akan tersedia dari konsol. EventBridge Contoh fungsi Lambda di bawah ini, ditulis dalam Node.js, dipanggil EventBridge ketika `createSnapshot` peristiwa yang cocok dipancarkan oleh Amazon EBS (menandakan bahwa snapshot telah selesai). Saat diinvokasi, fungsi menyalin snapshot dari `us-east-2` untuk `us-east-1`.

   ```
   // Sample Lambda function to copy an EBS snapshot to a different Region
    
   var AWS = require('aws-sdk');
   var ec2 = new AWS.EC2();
    
   // define variables
   var destinationRegion = 'us-east-1';
   var sourceRegion = 'us-east-2';
   console.log ('Loading function');
    
   //main function
   exports.handler = (event, context, callback) => {
    
       // Get the EBS snapshot ID from the event details
       var snapshotArn = event.detail.snapshot_id.split('/');
       const snapshotId = snapshotArn[1];
       const description = `Snapshot copy from ${snapshotId} in ${sourceRegion}.`;
       console.log ("snapshotId:", snapshotId);
   
       // Load EC2 class and update the configuration to use destination Region to initiate the snapshot.
       AWS.config.update({region: destinationRegion});
       var ec2 = new AWS.EC2();
   
       // Prepare variables for ec2.modifySnapshotAttribute call
       const copySnapshotParams = {
           Description: description,
           DestinationRegion: destinationRegion,
           SourceRegion: sourceRegion,
           SourceSnapshotId: snapshotId
       };
    
       // Execute the copy snapshot and log any errors
       ec2.copySnapshot(copySnapshotParams, (err, data) => {
           if (err) {
               const errorMessage = `Error copying snapshot ${snapshotId} to Region ${destinationRegion}.`;
               console.log(errorMessage);
               console.log(err);
               callback(errorMessage);
           } else {
               const successMessage = `Successfully started copy of snapshot ${snapshotId} to Region ${destinationRegion}.`;
               console.log(successMessage);
               console.log(data);
               callback(null, successMessage);
           }
       });
   };
   ```

   Untuk memastikan bahwa fungsi Lambda Anda tersedia dari EventBridge konsol, buat di Wilayah tempat EventBridge acara akan terjadi. Lihat informasi selengkapnya di [Panduan Developer AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/).

1. Buka EventBridge konsol Amazon di [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Di panel navigasi, pilih buat **Aturan**, lalu pilih **Buat aturan**.

1. Untuk **Langkah 1: Tentukan detail aturan**, lakukan hal berikut ini:

   1. Masukkan nilai untuk **Nama** dan **Deskripsi**.

   1. Untuk **Bus peristiwa**, tetap **default**.

   1. Pastikan **Aktifkan aturan pada bus peristiwa yang dipilih** telah diaktifkan.

   1. Untuk **Tipe peristiwa**, pilih **Aturan dengan pola peristiwa**.

   1. Pilih **Berikutnya**.

1. Untuk **Langkah 2: Bangun pola peristiwa**, lakukan hal berikut ini:

   1. Untuk **sumber acara**, pilih **AWS acara atau acara EventBridge mitra**.

   1. Di bagian **Pola peristiwa**, untuk **sumber peristiwa**, pastikan bahwa **layanan AWS ** dipilih, dan untuk **layanan AWS **, pilih **EC2**.

   1. Untuk **Tipe peristiwa**, pilih **Notifikasi Snapshot EBS**, pilih **Peristiwa spesifik**, lalu pilih **createSnapshot**.

   1. Pilih **Hasil spesifik** dan kemudian pilih **berhasil**.

   1. Pilih **Berikutnya**.

1. Untuk **Langkah 3: Pilih target**, lakukan hal berikut ini:

   1. Untuk **Tipe target**, pilih **Layanan AWS **.

   1. Untuk **Pilih target**, pilih **fungsi Lambda**, dan untuk **Fungsi** pilih fungsi yang Anda buat sebelumnya.

   1. Pilih **Selanjutnya**

1. Untuk **Langkah 4: Konfigurasikan tanda**, tentukan tanda untuk aturan jika diperlukan, lalu pilih **Berikutnya**.

1. Untuk **Langkah 5: Tinjau dan buat**, tinjau aturan lalu pilih **Buat aturan**.

Aturan Anda seharusnya kini muncul di tab **Aturan**. Pada contoh yang ditunjukkan, peristiwa yang Anda konfigurasikan harusoleh EBS pada saat Anda menyalin snapshot berikutnya.