

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

# Tutorial: Secara otomatis menghentikan instans Amazon EC2 yang tidak memiliki tag yang diperlukan
<a name="monitor-example"></a>

Ketika kumpulan AWS sumber daya Anda dan Akun AWS yang Anda kelola tumbuh, Anda dapat menggunakan tag untuk membuatnya lebih mudah untuk mengkategorikan sumber daya Anda. Tag biasanya digunakan untuk kasus penggunaan kritis seperti alokasi biaya dan keamanan. Untuk mengelola AWS sumber daya secara efektif, sumber daya Anda perlu ditandai secara konsisten. Seringkali, ketika sumber daya disediakan, ia mendapatkan semua tag yang sesuai. Namun, proses selanjutnya dapat menghasilkan perubahan tag yang menghasilkan penyimpangan dari kebijakan tag perusahaan. Dengan memantau perubahan pada tag Anda, Anda dapat melihat penyimpangan tag dan segera merespons. Ini memberi Anda lebih percaya diri bahwa proses yang bergantung pada sumber daya Anda yang dikategorikan dengan benar akan menghasilkan hasil yang diinginkan.

Contoh berikut menunjukkan cara memantau perubahan tag pada instans Amazon EC2 untuk memverifikasi bahwa instance tertentu terus memiliki tag yang diperlukan. Jika tag instance berubah dan instance tidak lagi memiliki tag yang diperlukan, fungsi Lambda dipanggil untuk mematikan instance secara otomatis. Mengapa Anda ingin melakukan ini? Ini memastikan bahwa semua sumber daya ditandai sesuai dengan kebijakan tag perusahaan Anda, untuk alokasi biaya yang efektif, atau untuk dapat mempercayai keamanan berdasarkan [kontrol akses berbasis atribut](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) (ABAC).

**penting**  
Kami sangat menyarankan agar Anda melakukan tutorial ini di akun non-produksi di mana Anda tidak dapat secara tidak sengaja mematikan instance penting.  
Kode contoh dalam tutorial ini sengaja membatasi dampak skenario ini hanya pada instance pada daftar instance. IDs Anda harus memperbarui daftar dengan contoh IDs bahwa Anda bersedia untuk menutup untuk tes. Ini membantu memastikan bahwa Anda tidak dapat secara tidak sengaja mematikan setiap instance di Wilayah di wilayah Anda Akun AWS.   
Setelah pengujian, pastikan semua instans Anda ditandai sesuai dengan strategi penandaan perusahaan Anda. Kemudian, Anda dapat menghapus kode yang membatasi fungsi hanya pada instance IDs pada daftar.

Contoh ini menggunakan JavaScript dan versi 16.x dari. Node.js Contoh menggunakan contoh Akun AWS ID 123456789012 dan Wilayah AWS US East (N. Virginia) (). `us-east-1` Ganti ini dengan ID dan Wilayah akun pengujian Anda sendiri. 

**catatan**  
Jika konsol Anda menggunakan Wilayah yang berbeda untuk defaultnya, pastikan Anda mengganti Wilayah yang Anda gunakan dalam tutorial ini setiap kali Anda mengubah konsol. Penyebab umum kegagalan tutorial ini adalah memiliki instance dan fungsi di dua Wilayah yang berbeda.

Jika Anda menggunakan Wilayah yang berbeda dari`us-east-1`, pastikan bahwa Anda mengubah semua referensi dalam contoh kode berikut ke Wilayah pilihan Anda.

**Topics**
+ [Langkah 1. Buat fungsi Lambda](#monitor-example-step-1)
+ [Langkah 2. Siapkan izin IAM yang diperlukan](#monitor-example-step-2)
+ [Langkah 3. Lakukan tes pendahuluan fungsi Lambda Anda](#monitor-example-step-3)
+ [Langkah 4. Buat EventBridge aturan yang meluncurkan fungsi](#monitor-example-step-4)
+ [Langkah 5. Uji solusi lengkapnya](#monitor-example-step-6)
+ [Ringkasan tutorial](#summary)

## Langkah 1. Buat fungsi Lambda
<a name="monitor-example-step-1"></a>

**Untuk membuat fungsi Lambda**

1. Buka [konsol AWS Lambda manajemen](https://console.aws.amazon.com/lambda/home).

1. Pilih **Buat fungsi** dan kemudian **Tulis dari awal**.

1. Untuk **Nama fungsi**, ketik **AutoEC2Termination**.

1. Untuk **Runtime**, pilih **Node.js 16.x**.

1. Simpan semua bidang lain pada nilai defaultnya, dan pilih **Buat fungsi**.

1. Pada tab **Kode** pada halaman `AutoEC2Termination` detail, buka file **index.js** untuk melihat kodenya.
   + Jika tab dengan **index.js** terbuka, Anda dapat memilih kotak edit di tab itu untuk mengedit kodenya.
   + Jika tab dengan **index.js** tidak terbuka, klik sekunder file **index.js** di bawah folder **Auto EC2 Terminator** di panel navigasi. Kemudian pilih **Buka**.

1. Di tab **index.js**, tempel kode berikut di kotak editor, ganti apa pun yang sudah ada.

    Ganti nilainya `RegionToMonitor` dengan Region tempat Anda ingin menjalankan fungsi ini.

   ```
   // Set the following line to specify which Region's instances you want to monitor
   // Only instances in this Region are succesfully stopped on a match
   
   const RegionToMonitor = "us-east-1"
   
   // Specify the instance ARNs to check.
   // This limits the function for safety to avoid the tutorial shutting down all instances in account
   // The first ARN is a "dummy" that matches the test event you create in Step 3.
   // Replace the second ARN with one that matches a real instance that you want to monitor and that you can 
   // safely stop
   
   const InstanceList = [
       "i-0000000aaaaaaaaaa",
       "i-05db4466d02744f07"
   ];
   
   // The tag key name and value that marks a "valid" instance. Instances in the previous list that
   // do NOT have the following tag key and value are stopped by this function
   
   const ValidKeyName = "valid-key";
   const ValidKeyValue = "valid-value";
   
   // Load and configure the AWS SDK
   const AWS = require('aws-sdk');
   // Set the AWS Region
   AWS.config.update({region: RegionToMonitor});
   // Create EC2 service object.
   const ec2 = new AWS.EC2({apiVersion: '2016-11-15'});
   
   exports.handler = (event, context, callback) => {
   
     // Retrieve the details of the reported event.
     var detail = event.detail;
     var tags = detail["tags"];
     var service = detail["service"];
     var resourceType = detail["resource-type"];
     var resource = event.resources[0];
     var resourceSplit = resource.split("/");
     var instanceId = resourceSplit[resourceSplit.length - 1];
   
     // If this event is not for an EC2 resource, then do nothing.
     if (!(service === "ec2")) {
       console.log("Event not for correct service -- no action (", service, ")" );
       return;
     }
   
     // If this event is not about an instance, then do nothing.
     if (!(resourceType === "instance")) {
       console.log("Event not for correct resource type -- no action (", resourceType, ")" );
       return;
     }
   
     // CAUTION - Removing the following 'if' statement causes the function to run against 
     //           every EC2 instance in the specified Region in the calling Akun AWS. 
     //           If you do this and an instance is not tagged with the approved tag key 
     //           and value, this function stops that instance.
   
     // If this event is not for the ARN of an instance in our include list, then do nothing.
     if (InstanceList.indexOf(instanceId)<0) {
       console.log("Event not for one of the monitored instances -- no action (", resource, ")");
       return;
     }
   
     console.log("Tags changed on monitored EC2 instance (",instanceId,")");
   
     // Check attached tags for expected tag key and value pair
     if ( tags.hasOwnProperty(ValidKeyName) && tags[ValidKeyName] == "valid-value"){
       // Required tags ARE present
       console.log("The instance has the required tag key and value -- no action");
       callback(null, "no action");
       return;
     }
     
     // Required tags NOT present
     console.log("This instance is missing the required tag key or value -- attempting to stop the instance");
   
     var params = {
       InstanceIds: [instanceId], 
       DryRun: true
     };
   
     // call EC2 to stop the selected instances
     ec2.stopInstances(params, function(err, data) {
       if (err && err.code === 'DryRunOperation') {
         // dryrun succeeded, so proceed with "real" stop operation
         params.DryRun = false;
         ec2.stopInstances(params, function(err, data) {
           if (err) {
             console.log("Failed to stop instance");
             callback(err, "fail");
           } else if (data) {
             console.log("Successfully stopped instance", data.StoppingInstances);
             callback(null, "Success");
           }
         });
       } else {
         console.log("Dryrun attempt failed");
         callback(err);
       }
     });
   };
   ```

1. Pilih **Deploy** untuk menyimpan perubahan Anda dan membuat versi baru fungsi aktif.

Fungsi Lambda ini memeriksa tag instans Amazon EC2, seperti yang dilaporkan oleh peristiwa perubahan tag di. EventBridge Dalam contoh ini, jika instance dalam acara tersebut kehilangan kunci tag yang diperlukan `valid-key` atau jika tag tersebut tidak memiliki nilai`valid-value`, maka fungsi tersebut mencoba menghentikan instance. Anda dapat mengubah pemeriksaan logis ini atau persyaratan tag untuk kasus penggunaan spesifik Anda sendiri.

Biarkan jendela konsol Lambda tetap terbuka di browser Anda.

## Langkah 2. Siapkan izin IAM yang diperlukan
<a name="monitor-example-step-2"></a>

Sebelum fungsi berhasil dijalankan, Anda harus memberikan fungsi izin untuk menghentikan instans EC2. Peran yang AWS diberikan [https://console.aws.amazon.com/iamv2/home#/roles/details/lambda_basic_execution](https://console.aws.amazon.com/iamv2/home#/roles/details/lambda_basic_execution)tidak memiliki izin itu. Dalam tutorial ini, Anda memodifikasi kebijakan izin IAM default yang dilampirkan ke peran eksekusi fungsi bernama`AutoEC2Termination-role-uniqueid`. Izin tambahan minimum yang diperlukan untuk tutorial ini adalah`ec2:StopInstances`. 

*Untuk informasi selengkapnya tentang membuat kebijakan IAM khusus Amazon EC2, lihat [Amazon EC2: Mengizinkan memulai atau menghentikan Instans EC2 dan memodifikasi grup keamanan, secara terprogram dan di konsol di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_ec2_instance-securitygroup.html) IAM.*

**Untuk membuat kebijakan izin IAM dan melampirkannya ke peran eksekusi fungsi Lambda**

1. Di tab atau jendela browser yang berbeda, buka halaman [Peran](https://console.aws.amazon.com/iamv2/home#/roles) konsol IAM.

1. Mulai mengetik nama peran**AutoEC2Termination**, dan ketika muncul dalam daftar, pilih nama peran. 

1. Pada halaman **Ringkasan** peran, pilih tab **Izin** dan pilih nama satu kebijakan yang sudah dilampirkan.

1. Pada halaman **Ringkasan** kebijakan, pilih **Edit kebijakan**.

1. Pada tab **Editor Visual**, pilih **Tambahkan izin tambahan**.

1. Untuk **Layanan **, pilih **EC2**.

1. Untuk **Tindakan**, pilih **StopInstances**. Anda dapat mengetik **Stop** di bilah pencarian, dan kemudian memilih `StopInstances` kapan muncul.

1. Untuk **Sumber Daya**, pilih **Semua sumber daya**, pilih **Kebijakan tinjauan**, lalu pilih **Simpan perubahan**. 

   Ini secara otomatis membuat versi baru kebijakan dan menetapkan versi tersebut sebagai default.

   Kebijakan akhir Anda akan terlihat mirip dengan contoh berikut.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "ec2:StopInstances",
               "Resource": "*"
           },
           {
               "Sid": "VisualEditor1",
               "Effect": "Allow",
               "Action": "logs:CreateLogGroup",
               "Resource": "arn:aws:logs:us-east-1:123456789012:*"
           },
           {
               "Sid": "VisualEditor2",
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents"
               ],
               "Resource": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/AutoEC2Termination:*"
           }
       ]
   }
   ```

------

## Langkah 3. Lakukan tes pendahuluan fungsi Lambda Anda
<a name="monitor-example-step-3"></a>

Pada langkah ini, Anda mengirimkan acara pengujian ke fungsi Anda. Fungsionalitas pengujian Lambda bekerja dengan mengirimkan peristiwa pengujian yang disediakan secara manual. Fungsi memproses peristiwa uji seperti jika acara itu berasal EventBridge. Anda dapat menentukan beberapa peristiwa pengujian dengan nilai yang berbeda untuk menjalankan semua bagian yang berbeda dari kode Anda. Pada langkah ini, Anda mengirimkan peristiwa pengujian yang menunjukkan bahwa tag instans Amazon EC2 berubah, dan tag baru tidak menyertakan kunci dan nilai tag yang diperlukan.

**Untuk menguji fungsi Lambda Anda**

1. Kembali ke jendela atau tab dengan konsol Lambda dan buka tab **Uji** untuk fungsi **EC2Pengakhiran Otomatis** Anda.

1. Pilih **Buat acara baru**.

1. Untuk **Nama peristiwa**, masukkan **SampleBadTagChangeEvent**.

1. Dalam **Event JSON**, ganti teks dengan contoh peristiwa yang ditunjukkan dalam contoh teks berikut. Anda tidak perlu mengubah akun, Wilayah, atau ID instans agar peristiwa pengujian ini berfungsi dengan benar.

   ```
   {
     "version": "0",
     "id": "bddcf1d6-0251-35a1-aab0-adc1fb47c11c",
     "detail-type": "Tag Change on Resource",
     "source": "aws.tag",
     "account": "123456789012",
     "time": "2018-09-18T20:41:38Z",
     "region": "us-east-1",
     "resources": [
       "arn:aws:ec2:us-east-1:123456789012:instance/i-0000000aaaaaaaaaa"
     ],
     "detail": {
       "changed-tag-keys": [
         "valid-key"
       ],
       "tags": {
         "valid-key": "NOT-valid-value"
       },
       "service": "ec2",
       "resource-type": "instance",
       "version": 3
     }
   }
   ```

1. Pilih **Simpan**, lalu pilih **Uji**.

   Tes tampaknya gagal, tapi tidak apa-apa. 

   Anda akan melihat kesalahan berikut di tab **Hasil eksekusi** di bawah **Respons**.

   ```
   {
     "errorType": "InvalidInstanceID.NotFound",
     "errorMessage": "The instance ID 'i-0000000aaaaaaaaaa' does not exist",
     ...
   }
   ```

   Kesalahan terjadi karena instance yang ditentukan dalam acara pengujian tidak ada. 

   Informasi pada tab **Hasil eksekusi**, di bagian **Log Fungsi**, menunjukkan bahwa fungsi Lambda Anda berhasil mencoba menghentikan instans EC2. Namun, gagal karena kode awalnya mencoba [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartInstances.html#API_StartInstances_RequestParameters](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartInstances.html#API_StartInstances_RequestParameters)operasi untuk menghentikan instance, yang menunjukkan bahwa ID instance tidak valid. 

   ```
   START RequestId: 390c1f8d-0d9b-4b44-b087-8de64479ab44 Version: $LATEST
   2022-11-30T20:17:30.427Z    390c1f8d-0d9b-4b44-b087-8de64479ab44    INFO    Tags changed on monitored EC2 instance ( i-0000000aaaaaaaaaa )
   2022-11-30T20:17:30.427Z    390c1f8d-0d9b-4b44-b087-8de64479ab44    INFO    This instance is missing the required tag key or value -- attempting to stop the instance
   2022-11-30T20:17:31.206Z    390c1f8d-0d9b-4b44-b087-8de64479ab44    INFO    Dryrun attempt failed
   2022-11-30T20:17:31.207Z    390c1f8d-0d9b-4b44-b087-8de64479ab44    ERROR   Invoke Error     {"errorType":"InvalidInstanceID.NotFound","errorMessage":"The instance ID 'i-0000000aaaaaaaaaa' does not exist","code":"InvalidInstanceID.NotFound","message":"The instance ID 'i-0000000aaaaaaaaaa' does not exist","time":"2022-11-30T20:17:31.205Z","requestId":"a5192c3b-142d-4cec-bdbc-685a9b7c7abf","statusCode":400,"retryable":false,"retryDelay":36.87870631147607,"stack":["InvalidInstanceID.NotFound: The instance ID 'i-0000000aaaaaaaaaa' does not exist","    at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/services/ec2.js:50:35)","    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)","    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)","    at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:686:14)","    at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)","    at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)","    at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10","    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)","    at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:688:12)","    at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18)"]}
   END RequestId: 390c1f8d-0d9b-4b44-b087-8de64479ab44
   ```

1. Untuk membuktikan bahwa kode tidak mencoba menghentikan instance ketika tag yang benar digunakan, Anda dapat membuat dan mengirimkan peristiwa pengujian lain. 

   Pilih tab **Uji** di atas **Sumber kode**. Konsol menampilkan acara **SampleBadTagChangeEvent**pengujian yang ada.

1. Pilih **Buat acara baru**.

1. Untuk **nama Acara**, ketik**SampleGoodTagChangeEvent**.

1. Pada baris 17, hapus **NOT-** untuk mengubah nilainya menjadi**valid-value**.

1. Di bagian atas jendela **Test event**, pilih **Save**, lalu pilih **Test**.

   Output menampilkan berikut ini, yang menunjukkan bahwa fungsi mengenali tag yang valid dan tidak mencoba untuk mematikan instance.

   ```
   START RequestId: 53631a49-2b54-42fe-bf61-85b9e91e86c4 Version: $LATEST
   2022-12-01T23:24:12.244Z    53631a49-2b54-42fe-bf61-85b9e91e86c4    INFO    Tags changed on monitored EC2 instance ( i-0000000aaaaaaaaaa )
   2022-12-01T23:24:12.244Z    53631a49-2b54-42fe-bf61-85b9e91e86c4    INFO    The instance has the required tag key and value -- no action
   END RequestId: 53631a49-2b54-42fe-bf61-85b9e91e86c4
   ```

   Biarkan konsol Lambda tetap terbuka di browser Anda.

## Langkah 4. Buat EventBridge aturan yang meluncurkan fungsi
<a name="monitor-example-step-4"></a>

Sekarang Anda dapat membuat EventBridge aturan yang cocok dengan acara dan menunjuk ke fungsi Lambda Anda.

**Untuk membuat EventBridge aturan**

1. Di tab atau jendela browser yang berbeda, buka [EventBridge konsol](https://console.aws.amazon.com/events/home#/rules/create) ke halaman **Create Rule**.

1. Untuk **Nama**, masukkan**ec2-instance-rule**, lalu pilih **Berikutnya**.

1. Gulir ke bawah ke **metode Creation** dan pilih **Custom pattern (JSON editor)**.

1. Di kotak pengeditan, tempel teks pola berikut, lalu pilih **Berikutnya**.

   ```
   {
     "source": [
       "aws.tag"
     ],
     "detail-type": [
       "Tag Change on Resource"
     ],
     "detail": {
       "service": [
         "ec2"
       ],
       "resource-type": [
         "instance"
       ]
     }
   }
   ```

   Aturan ini cocok dengan `Tag Change on Resource` peristiwa untuk instans Amazon EC2 dan memanggil apa pun yang Anda tentukan sebagai **Target di langkah berikutnya**. 

1. Selanjutnya, tambahkan fungsi Lambda Anda sebagai target. Dalam kotak **Target 1**, di bawah **Pilih target**, pilih fungsi **Lambda**.

1. Di bawah **Fungsi**, pilih fungsi **EC2Pengakhiran Otomatis** yang Anda buat sebelumnya, lalu pilih **Berikutnya**.

1. Pada halaman **Konfigurasi tag**, pilih **Berikutnya**. Kemudian pada halaman **Tinjau dan buat**, pilih **Buat aturan**. Ini juga secara otomatis memberikan izin EventBridge untuk menjalankan fungsi Lambda yang ditentukan.

## Langkah 5. Uji solusi lengkapnya
<a name="monitor-example-step-6"></a>

Anda dapat menguji hasil akhir Anda dengan membuat instans EC2 dan melihat apa yang terjadi ketika Anda mengubah tagnya.

**Untuk menguji solusi pemantauan dengan instance nyata**

1. Buka [konsol Amazon EC2 ke halaman](https://console.aws.amazon.com/ec2/v2/home#Instances:) **Instans**.

1. Buat instans Amazon EC2. Sebelum Anda meluncurkannya, lampirkan tag dengan kunci `valid-key` dan nilainya`valid-value`. Untuk informasi tentang cara membuat dan meluncurkan instans, lihat [Langkah 1: Meluncurkan instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) di *Panduan Pengguna Amazon EC2*. Dalam prosedur *Untuk meluncurkan instance*, pada langkah 3, di mana Anda memasukkan tag **Nama**, juga pilih **Tambahkan tag tambahan**, pilih **Tambah tag**, lalu masukkan **Kunci** **valid-key** dan **Nilai** dari**valid-value**. Anda dapat **Melanjutkan tanpa key pair** jika instance ini semata-mata untuk keperluan tutorial ini dan Anda berencana untuk menghapus instance ini setelah Anda menyelesaikannya. Kembali ke tutorial ini ketika Anda mencapai akhir **Langkah 1**; Anda tidak perlu melakukan **Langkah 2: Connect to your instance**.

1. Salin **InstanceId**dari konsol.

1. Beralih dari konsol Amazon EC2 ke konsol Lambda. Pilih fungsi **Auto EC2 Termination** Anda, pilih tab **Code**, dan kemudian pilih tab **index.js** untuk mengedit kode Anda.

1. Ubah entri kedua di `InstanceList` dengan menempelkan nilai yang Anda salin dari konsol Amazon EC2. Pastikan `RegionToMonitor` nilainya cocok dengan Wilayah yang berisi instance yang Anda tempel.

1. Pilih **Deploy** untuk membuat perubahan Anda aktif. Fungsi ini sekarang siap untuk diaktifkan oleh perubahan tag ke instance itu di Wilayah tertentu.

1. Beralih dari konsol Lambda ke konsol Amazon EC2.

1. Ubah **Tag** yang dilampirkan ke instance dengan menghapus tag **valid-key** atau dengan mengubah nilai kunci itu. 
**catatan**  
Untuk informasi tentang cara mengubah tag pada instans Amazon EC2 yang sedang berjalan, lihat [Menambahkan dan menghapus tag pada sumber daya individual di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#adding-or-deleting-tags) Pengguna *Amazon EC2*.

1. Tunggu beberapa detik, lalu segarkan konsol. Instance harus mengubah **status Instance** menjadi **Stopping** dan kemudian ke **Stopped**.

1. **Beralih dari konsol Amazon EC2 ke konsol Lambda dengan fungsi Anda, dan pilih tab Monitor.** 

1. Pilih tab **Log**, dan dalam tabel **Pemanggilan terbaru**, pilih entri terbaru di **LogStream**kolom.

    CloudWatch Konsol Amazon terbuka ke halaman **peristiwa Log** untuk pemanggilan terakhir fungsi Lambda Anda. Entri terakhir akan terlihat mirip dengan contoh berikut.

   ```
   2022-11-30T12:03:57.544-08:00    START RequestId: b5befd18-2c41-43c8-a320-3a4b2317cdac Version: $LATEST
   2022-11-30T12:03:57.548-08:00    2022-11-30T20:03:57.548Z b5befd18-2c41-43c8-a320-3a4b2317cdac INFO Tags changed on monitored EC2 instance ( arn:aws:ec2:us-west-2:123456789012:instance/i-1234567890abcdef0 )
   2022-11-30T12:03:57.548-08:00    2022-11-30T20:03:57.548Z b5befd18-2c41-43c8-a320-3a4b2317cdac INFO This instance is missing the required tag key or value -- attempting to stop the instance
   2022-11-30T12:03:58.488-08:00    2022-11-30T20:03:58.488Z b5befd18-2c41-43c8-a320-3a4b2317cdac INFO Successfully stopped instance [ { CurrentState: { Code: 64, Name: 'stopping' }, InstanceId: 'i-1234567890abcdef0', PreviousState: { Code: 16, Name: 'running' } } ]
   2022-11-30T12:03:58.546-08:00    END RequestId: b5befd18-2c41-43c8-a320-3a4b2317cdac
   ```

## Ringkasan tutorial
<a name="summary"></a>

Tutorial ini menunjukkan cara membuat EventBridge aturan agar sesuai dengan perubahan tag pada peristiwa sumber daya untuk instans Amazon EC2. Aturan menunjuk ke fungsi Lambda yang secara otomatis mematikan instance jika tidak memiliki tag yang diperlukan.

 EventBridge Dukungan Amazon untuk perubahan tag pada AWS sumber daya membuka kemungkinan untuk membangun otomatisasi berbasis peristiwa di banyak sumber daya. Layanan AWS Menggabungkan kemampuan ini dengan AWS Lambda memberi Anda alat untuk membangun solusi tanpa server yang mengakses AWS sumber daya dengan aman, menskalakan sesuai permintaan, dan hemat biaya.

Kasus penggunaan lain yang mungkin untuk tag-change-on-resource EventBridge acara tersebut meliputi:
+ **Luncurkan peringatan jika seseorang mengakses sumber daya Anda dari alamat IP yang tidak biasa** — Gunakan tag untuk menyimpan alamat IP sumber setiap pengunjung yang mengakses sumber daya Anda. Perubahan pada tag menghasilkan CloudWatch peristiwa. Anda dapat menggunakan peristiwa itu untuk membandingkan alamat IP sumber dengan daftar alamat IP yang valid dan mengaktifkan email peringatan jika alamat IP sumber tidak valid.
+ **Pantau jika ada perubahan pada kontrol akses berbasis tag untuk sumber daya** — Jika Anda telah menyiapkan akses ke sumber daya menggunakan [kontrol akses berbasis atribut (tag) (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html), Anda dapat menggunakan EventBridge peristiwa yang dihasilkan oleh perubahan apa pun pada tag untuk meminta audit oleh tim keamanan Anda.