

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

# Bersiaplah untuk menambahkan kait siklus hidup ke grup Auto Scaling
<a name="prepare-for-lifecycle-notifications"></a>

Sebelum menambahkan hook siklus hidup ke grup Auto Scaling, pastikan skrip data pengguna atau target notifikasi sudah diatur dengan benar.
+ Untuk menggunakan skrip data pengguna untuk melakukan tindakan kustom pada instance Anda saat diluncurkan, Anda tidak perlu mengonfigurasi target notifikasi. Namun, Anda harus sudah membuat template peluncuran atau konfigurasi peluncuran yang menentukan skrip data pengguna Anda dan menghubungkannya dengan grup Auto Scaling Anda. Untuk informasi selengkapnya tentang skrip data pengguna, lihat [Menjalankan perintah pada instance Linux Anda saat diluncurkan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) di Panduan Pengguna *Amazon EC2*. 
+ Untuk memberi sinyal Amazon EC2 Auto Scaling saat tindakan siklus hidup selesai, Anda harus [CompleteLifecycleAction](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CompleteLifecycleAction.html)menambahkan panggilan API ke skrip, dan Anda harus membuat peran IAM secara manual dengan kebijakan yang memungkinkan instance Auto Scaling memanggil API ini. Template peluncuran atau konfigurasi peluncuran Anda harus menentukan peran ini menggunakan profil instans IAM yang dilampirkan ke instans Amazon EC2 Anda saat peluncuran. Untuk informasi selengkapnya, lihat [Selesaikan tindakan siklus hidup dalam grup Auto Scaling](completing-lifecycle-hooks.md) dan [Peran IAM untuk aplikasi yang berjalan di instans Amazon EC2](us-iam-role.md).
+ Untuk mengizinkan Lambda memberi sinyal Amazon EC2 Auto Scaling saat tindakan siklus hidup selesai, Anda harus menambahkan [CompleteLifecycleAction](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CompleteLifecycleAction.html)panggilan API ke kode fungsi. Anda juga harus melampirkan kebijakan IAM ke peran eksekusi fungsi yang memberi Lambda izin untuk menyelesaikan tindakan siklus hidup. Untuk informasi selengkapnya, lihat [Tutorial: Konfigurasikan kait siklus hidup yang memanggil fungsi Lambda](tutorial-lifecycle-hook-lambda.md).
+ Untuk menggunakan layanan seperti Amazon SNS atau Amazon SQS untuk melakukan tindakan kustom, Anda harus sudah membuat topik SNS atau antrian SQS dan telah menyiapkan Nama Sumber Daya Amazon (ARN). Anda juga harus telah membuat peran IAM yang memberikan akses Amazon EC2 Auto Scaling ke topik SNS atau target SQS Anda dan telah menyiapkan ARN-nya. Untuk informasi selengkapnya, lihat [Konfigurasikan target notifikasi untuk notifikasi siklus hidup](#lifecycle-hook-notification-target). 
**catatan**  
Secara default, saat Anda menambahkan kait siklus hidup di konsol, Amazon EC2 Auto Scaling mengirimkan pemberitahuan peristiwa siklus hidup ke Amazon. EventBridge Menggunakan EventBridge atau skrip data pengguna adalah praktik terbaik yang disarankan. Untuk membuat hook siklus hidup yang mengirimkan notifikasi langsung ke Amazon SNS, Amazon SQS, atau, gunakan, AWS Lambda atau SDK AWS CLI untuk AWS CloudFormation menambahkan kait siklus hidup.

## Konfigurasikan target notifikasi untuk notifikasi siklus hidup
<a name="lifecycle-hook-notification-target"></a>

Anda dapat menambahkan kait siklus hidup ke grup Auto Scaling untuk melakukan tindakan kustom saat instance memasuki status tunggu. Anda dapat memilih layanan target untuk melakukan tindakan ini tergantung pada pendekatan pengembangan pilihan Anda.

Ada empat pendekatan berbeda untuk menerapkan target notifikasi untuk kait siklus hidup:
+ **Amazon EventBridge** — Menerima notifikasi dan melakukan tindakan yang Anda inginkan.
+ **Amazon Simple Notification Service (Amazon SNS**) - Buat topik untuk menerbitkan notifikasi. Klien dapat berlangganan topik SNS dan menerima pesan yang dipublikasikan menggunakan protokol yang didukung.
+ **Amazon Simple Queue Service (Amazon Simple Service**) — Bertukar pesan melalui model polling.
+ **AWS Lambda**— Memanggil fungsi Lambda yang melakukan tindakan yang Anda inginkan.

Sebagai praktik terbaik, kami sarankan Anda menggunakannya EventBridge. Pemberitahuan yang dikirim ke Amazon SNS dan Amazon SQS berisi informasi yang sama dengan notifikasi yang dikirimkan oleh Amazon EC2 Auto Scaling. EventBridge Sebelumnya EventBridge, praktik standar adalah mengirim pemberitahuan ke SNS atau SQS dan mengintegrasikan layanan lain dengan SNS atau SQS untuk melakukan tindakan terprogram. Hari ini, EventBridge memberi Anda lebih banyak opsi untuk layanan mana yang dapat Anda targetkan dan membuatnya lebih mudah untuk menangani acara menggunakan arsitektur tanpa server. 

Ingat, jika Anda memiliki skrip data pengguna di template peluncuran atau konfigurasi peluncuran yang mengonfigurasi instans Anda saat diluncurkan, Anda tidak perlu menerima pemberitahuan untuk melakukan tindakan khusus pada instance Anda.

Prosedur berikut mencakup cara mengatur target notifikasi Anda.

**Topics**
+ [Pemberitahuan rute ke Lambda menggunakan EventBridge](#cloudwatch-events-notification)
+ [Terima notifikasi menggunakan Amazon SNS](#sns-notifications)
+ [Menerima pemberitahuan menggunakan Amazon SQS](#sqs-notifications)
+ [Rute pemberitahuan ke AWS Lambda langsung](#lambda-notification)
+ [Contoh pesan pemberitahuan](#notification-message-example)

**penting**  
 EventBridge Aturan, fungsi Lambda, topik Amazon SNS, dan antrean Amazon SQS yang Anda gunakan dengan kait siklus hidup harus selalu berada di Wilayah yang sama tempat Anda membuat grup Auto Scaling.

### Pemberitahuan rute ke Lambda menggunakan EventBridge
<a name="cloudwatch-events-notification"></a>

Anda dapat mengonfigurasi EventBridge aturan untuk menjalankan fungsi Lambda saat instance memasuki status tunggu. Amazon EC2 Auto Scaling memancarkan EventBridge pemberitahuan peristiwa siklus hidup tentang instans yang diluncurkan atau dihentikan dan token yang dapat Anda gunakan untuk mengontrol tindakan siklus hidup. Untuk contoh peristiwa ini, lihat[Referensi acara Amazon EC2 Auto Scaling](ec2-auto-scaling-event-reference.md).

**catatan**  
Saat Anda menggunakan aturan Konsol Manajemen AWS untuk membuat acara, konsol secara otomatis menambahkan izin IAM yang diperlukan untuk memberikan EventBridge izin memanggil fungsi Lambda Anda. Jika Anda membuat aturan peristiwa menggunakan AWS CLI, Anda harus memberikan izin ini secara eksplisit.   
Untuk informasi tentang cara membuat aturan peristiwa di EventBridge konsol, lihat [Membuat EventBridge aturan Amazon yang bereaksi terhadap peristiwa](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html) di *Panduan EventBridge Pengguna Amazon*.  
— atau —   
Untuk tutorial pengantar yang ditujukan untuk pengguna konsol, lihat[Tutorial: Konfigurasikan kait siklus hidup yang memanggil fungsi Lambda](tutorial-lifecycle-hook-lambda.md). Tutorial ini menunjukkan cara membuat fungsi Lambda sederhana yang mendengarkan acara peluncuran dan menuliskannya ke log Log. CloudWatch 

**Untuk membuat EventBridge aturan yang memanggil fungsi Lambda**

1. Buat fungsi Lambda dengan menggunakan [konsol Lambda](https://console.aws.amazon.com/lambda/home#/functions) dan catat Nama Sumber Daya Amazon (ARN). Misalnya, `arn:aws:lambda:region:123456789012:function:my-function`. Anda membutuhkan ARN untuk membuat target. EventBridge Untuk informasi selengkapnya, lihat [Memulai Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) di Panduan *AWS Lambda Pengembang*.

1. Untuk membuat aturan yang cocok dengan peristiwa misalnya peluncuran, gunakan perintah [put-rule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/put-rule.html) berikut.

   ```
   aws events put-rule --name my-rule --event-pattern file://pattern.json --state ENABLED
   ```

   Contoh berikut menunjukkan `pattern.json` untuk tindakan siklus hidup peluncuran instance. Ganti teks **italics**dengan nama grup Auto Scaling Anda.

   ```
   {
     "source": [ "aws.autoscaling" ],
     "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
     "detail": {
         "AutoScalingGroupName": [ "my-asg" ]
      }
   }
   ```

   Jika perintah berjalan dengan sukses, EventBridge merespons dengan ARN aturan. Perhatikan ARN ini. Anda harus memasukkannya di langkah 4.

   Untuk membuat aturan yang cocok untuk acara lain, ubah pola acara. Untuk informasi selengkapnya, lihat [Gunakan EventBridge untuk menangani peristiwa Auto Scaling](automating-ec2-auto-scaling-with-eventbridge.md).

1. Untuk menentukan fungsi Lambda yang akan digunakan sebagai target aturan, gunakan perintah [put-target](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/put-targets.html) berikut.

   ```
   aws events put-targets --rule my-rule --targets Id=1,Arn=arn:aws:lambda:region:123456789012:function:my-function
   ```

   Pada perintah sebelumnya, *my-rule* adalah nama yang Anda tentukan untuk aturan di langkah 2, dan nilai untuk `Arn` parameter adalah ARN dari fungsi yang Anda buat di langkah 1.

1. [Untuk menambahkan izin yang memungkinkan aturan menjalankan fungsi Lambda Anda, gunakan perintah izin tambahan Lambda berikut.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/add-permission.html) Perintah ini mempercayai EventBridge service principal (`events.amazonaws.com`) dan cakupan izin untuk aturan yang ditentukan.

   ```
   aws lambda add-permission --function-name my-function --statement-id my-unique-id \
     --action 'lambda:InvokeFunction' --principal events.amazonaws.com --source-arn arn:aws:events:region:123456789012:rule/my-rule
   ```

   Dalam perintah sebelumnya:
   + *my-function*adalah nama fungsi Lambda yang Anda inginkan aturan untuk digunakan sebagai target.
   + *my-unique-id*adalah pengidentifikasi unik yang Anda tentukan untuk menggambarkan pernyataan dalam kebijakan fungsi Lambda.
   + `source-arn`adalah ARN dari aturan tersebut. EventBridge 

   Jika perintah berjalan dengan berhasil, Anda menerima output yang mirip dengan berikut ini.

   ```
   {
     "Statement": "{\"Sid\":\"my-unique-id\",
       \"Effect\":\"Allow\",
       \"Principal\":{\"Service\":\"events.amazonaws.com\"},
       \"Action\":\"lambda:InvokeFunction\",
       \"Resource\":\"arn:aws:lambda:us-west-2:123456789012:function:my-function\",
       \"Condition\":
         {\"ArnLike\":
           {\"AWS:SourceArn\":
            \"arn:aws:events:us-west-2:123456789012:rule/my-rule\"}}}"
   }
   ```

   Nilai `Statement` adalah versi string JSON dari pernyataan yang ditambahkan ke kebijakan fungsi Lambda.

1. Setelah Anda mengikuti petunjuk ini, lanjutkan ke [Tambahkan kait siklus hidup ke grup Auto Scaling](adding-lifecycle-hooks.md) sebagai langkah berikutnya.

### Terima notifikasi menggunakan Amazon SNS
<a name="sns-notifications"></a>

Anda dapat menggunakan Amazon SNS untuk menyiapkan target notifikasi (topik SNS) untuk menerima notifikasi saat tindakan siklus hidup terjadi. Amazon SNS kemudian mengirimkan notifikasi ke penerima berlangganan. Sampai langganan dikonfirmasi, tidak ada pemberitahuan yang dipublikasikan ke topik yang dikirim ke penerima. 

**Untuk mengatur menyiapkan notifikasi menggunakan Amazon SNS**

1. [Buat topik Amazon SNS dengan menggunakan konsol [Amazon SNS](https://console.aws.amazon.com/sns/) atau perintah create-topic berikut.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/create-topic.html) Pastikan topik berada di Wilayah yang sama dengan grup Auto Scaling yang Anda gunakan. Untuk informasi lebih lanjut, lihat [Memulai dengan Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html) di *Panduan Developer Amazon Simple Notification Service*. 

   ```
   aws sns create-topic --name my-sns-topic
   ```

1. Perhatikan topik Amazon Resource Name (ARN), misalnya,. `arn:aws:sns:region:123456789012:my-sns-topic` Anda membutuhkannya untuk membuat kait siklus hidup.

1. Buat peran layanan IAM untuk memberikan akses Amazon EC2 Auto Scaling ke target notifikasi Amazon SNS Anda.

    **Untuk memberikan akses Amazon EC2 Auto Scaling ke topik SNS Anda** 

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Pada panel navigasi di sebelah kiri, pilih **Peran**.

   1. Pilih **Buat peran**.

   1. Untuk **Pilih entitas tepercaya**, pilih **AWS layanan**.

   1. Untuk kasus penggunaan Anda, di bawah **Kasus penggunaan untuk AWS layanan lain**, pilih **EC2 Auto Scaling dan kemudian Akses** **Pemberitahuan Penskalaan Otomatis EC2.**

   1. Pilih **Berikutnya** dua kali untuk membuka halaman **Nama, ulasan, dan buat**.

   1. Untuk **nama Peran**, masukkan nama untuk peran (misalnya,**my-notification-role**) dan pilih **Buat peran**.

   1. Pada halaman **Peran**, pilih peran yang baru Anda buat untuk membuka **Ringkasan** yang baru. Catat peran **ARN**. Misalnya, `arn:aws:iam::123456789012:role/my-notification-role`. Anda membutuhkannya untuk membuat kait siklus hidup.

1. Setelah Anda mengikuti petunjuk ini, lanjutkan ke [Tambahkan kait siklus hidup ()AWS CLI](adding-lifecycle-hooks.md#adding-lifecycle-hooks-aws-cli) sebagai langkah berikutnya.

### Menerima pemberitahuan menggunakan Amazon SQS
<a name="sqs-notifications"></a>

Anda dapat menggunakan Amazon SQS untuk menyiapkan target notifikasi agar menerima pesan saat tindakan siklus hidup terjadi. Konsumen antrian kemudian harus melakukan polling antrian SQS untuk bertindak atas notifikasi ini.

**penting**  
Antrean FIFO tidak kompatibel dengan hook siklus aktif.

**Untuk menyiapkan notifikasi menggunakan Amazon SQS**

1. [Buat antrean Amazon SQS dengan menggunakan konsol Amazon SQS.](https://console.aws.amazon.com/sqs/) Pastikan antrean berada di Wilayah yang sama dengan grup Auto Scaling yang Anda gunakan. Untuk informasi lebih lanjut, lihat [Memulai dengan Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) di *Panduan Pengembang Amazon Simple Queue Service*. 

1. Perhatikan antrian ARN, misalnya,. `arn:aws:sqs:us-west-2:123456789012:my-sqs-queue` Anda membutuhkannya untuk membuat kait siklus hidup.

1. Buat peran layanan IAM untuk memberikan akses Amazon EC2 Auto Scaling ke target notifikasi Amazon SQS Anda.

    **Untuk memberikan akses Amazon EC2 Auto Scaling ke antrean SQS** 

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Pada panel navigasi di sebelah kiri, pilih **Peran**.

   1. Pilih **Buat peran**.

   1. Untuk **Pilih entitas tepercaya**, pilih **AWS layanan**.

   1. Untuk kasus penggunaan Anda, di bawah **Kasus penggunaan untuk AWS layanan lain**, pilih **EC2 Auto Scaling dan kemudian Akses** **Pemberitahuan Penskalaan Otomatis EC2.**

   1. Pilih **Berikutnya** dua kali untuk membuka halaman **Nama, ulasan, dan buat**.

   1. Untuk **nama Peran**, masukkan nama untuk peran (misalnya,**my-notification-role**) dan pilih **Buat peran**.

   1. Pada halaman **Peran**, pilih peran yang baru Anda buat untuk membuka **Ringkasan** yang baru. Catat peran **ARN**. Misalnya, `arn:aws:iam::123456789012:role/my-notification-role`. Anda membutuhkannya untuk membuat kait siklus hidup.

1. Setelah Anda mengikuti petunjuk ini, lanjutkan ke [Tambahkan kait siklus hidup ()AWS CLI](adding-lifecycle-hooks.md#adding-lifecycle-hooks-aws-cli) sebagai langkah berikutnya.

### Rute pemberitahuan ke AWS Lambda langsung
<a name="lambda-notification"></a>

Anda dapat menggunakan fungsi Lambda sebagai target notifikasi saat tindakan siklus hidup terjadi. 

**Untuk merutekan notifikasi ke AWS Lambda langsung**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi Lambda yang Anda inginkan.

   Jika Anda ingin membuat fungsi Lambda baru, lihat [Buat fungsi Lambda](lambda-custom-termination-policy.md#lambda-custom-termination-policy-create-function)

1. Pilih tab **Konfigurasi** dan kemudian **Izin**. 

1. **Gulir ke bawah ke **kebijakan berbasis sumber daya**, lalu pilih Tambahkan izin.** Kebijakan berbasis sumber daya digunakan untuk memberikan izin untuk menjalankan fungsi Anda ke prinsipal yang ditentukan dalam kebijakan. Dalam hal ini, prinsipnya adalah peran terkait layanan [Amazon EC2 Auto Scaling yang](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) terkait dengan grup Auto Scaling.

1. Di bagian **Pernyataan kebijakan**, konfigurasikan izin Anda: 

   1. Pilih **Akun AWS**.

   1. Untuk **Principal**, masukkan ARN dari peran terkait layanan panggilan, misalnya,. **arn:aws:iam::<aws-account-id>:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling**

   1. Untuk **Tindakan**, pilih **lambda: InvokeFunction**.

   1. Untuk **ID Pernyataan**, masukkan ID pernyataan unik, seperti**AllowInvokeByAutoScaling**.

   1. Pilih **Simpan**. 

1. Setelah Anda mengikuti petunjuk ini, lanjutkan ke [Tambahkan kait siklus hidup ()AWS CLI](adding-lifecycle-hooks.md#adding-lifecycle-hooks-aws-cli) sebagai langkah berikutnya.

### Contoh pesan pemberitahuan
<a name="notification-message-example"></a>

Bagian ini memberikan contoh notifikasi untuk Amazon SNS, Amazon SQS, dan. AWS Lambda

Saat instance dalam status tunggu, pesan dipublikasikan ke Amazon SNS, Amazon SQS, AWS Lambda dan target notifikasi. 

Pesan ini mencakup informasi berikut:
+ `Origin`— Tempat di mana instans EC2 berasal.
+ `Destination`— Tempat di mana instans EC2 akan pergi.
+ `LifecycleActionToken` — Token tindakan siklus aktif.
+ `AccountId`— Akun AWS ID.
+ `AutoScalingGroupName` — Nama grup Auto Scaling.
+ `LifecycleHookName` — Nama hook siklus aktif.
+ `EC2InstanceId` — ID instance EC2.
+ `LifecycleTransition` — Jenis hook siklus aktif.
+ `NotificationMetadata`— Metadata notifikasi.

Berikut ini adalah contoh pesan pemberitahuan.

```
Service: AWS Auto Scaling
Time: 2021-01-19T00:36:26.533Z
RequestId: 18b2ec17-3e9b-4c15-8024-ff2e8ce8786a
Origin: EC2
Destination: AutoScalingGroup
LifecycleActionToken: 71514b9d-6a40-4b26-8523-05e7ee35fa40
AccountId: 123456789012
AutoScalingGroupName: my-asg
LifecycleHookName: my-hook
EC2InstanceId: i-0598c7d356eba48d7
LifecycleTransition: autoscaling:EC2_INSTANCE_LAUNCHING
NotificationMetadata: hook message metadata
```

#### Contoh pesan notifikasi uji
<a name="test-notification-message-example"></a>

Saat pertama kali menambahkan kait siklus hidup, pesan notifikasi pengujian akan dipublikasikan ke target notifikasi. Berikut ini adalah contoh pesan notifikasi pengujian.

```
Service: AWS Auto Scaling
Time: 2021-01-19T00:35:52.359Z
RequestId: 18b2ec17-3e9b-4c15-8024-ff2e8ce8786a
Event: autoscaling:TEST_NOTIFICATION
AccountId: 123456789012
AutoScalingGroupName: my-asg
AutoScalingGroupARN: arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:042cba90-ad2f-431c-9b4d-6d9055bcc9fb:autoScalingGroupName/my-asg
```

**catatan**  
Untuk contoh peristiwa yang dikirimkan dari Amazon EC2 Auto EventBridge Scaling ke, lihat. [Referensi acara Amazon EC2 Auto Scaling](ec2-auto-scaling-event-reference.md)