Topik ini menjelaskan cara menggunakan EventBridge untuk berlangganan acara Elastic Compute Service (ECS) dan mengirimkan acara tersebut ke layanan hilir.
Informasi latar belakang
EventBridge adalah platform terpusat untuk mengelola acara di Alibaba Cloud. EventBridge menggunakan spesifikasi standar CloudEvents 1.0 untuk menghubungkan layanan cloud dan aplikasi. Anda dapat menggunakan EventBridge untuk mengelola acara yang dihasilkan di layanan cloud, layanan Software as a Service (SaaS), dan aplikasi bisnis. EventBridge menawarkan keandalan data sebesar 99,99999999% dan ketersediaan layanan sebesar 99,95%, memastikan kualitas acara dari layanan cloud hulu, pengalaman pengguna dalam langganan acara, serta keandalan pengiriman data.
Dibandingkan dengan operasi API DescribeInstanceHistoryEvents yang disediakan oleh ECS, fitur langganan acara yang ditawarkan oleh EventBridge memiliki keunggulan sebagai berikut:
Waktu lebih cepat: Ketika acara jenis tertentu terdeteksi, operasi tertentu dapat dipicu dalam hitungan milidetik.
Biaya lebih rendah: Tidak diperlukan polling berkala untuk memeriksa apakah acara telah dihasilkan, mencegah biaya tidak perlu.

Skenario
Berlangganan acara ECS jenis tertentu dan gunakan acara tersebut untuk memicu pengiriman notifikasi dari DingTalk, Layanan Pesan Singkat, dan Alibaba Mail.
Dorong acara ECS jenis tertentu ke layanan HTTP atau HTTPS hilir melalui Internet atau di virtual private cloud (VPC).
Agregasikan acara ECS yang dihasilkan di beberapa akun Alibaba Cloud.
Ketika acara ECS jenis tertentu terjadi, gunakan Function Compute untuk memicu operasi tertentu.
Ketika latensi acara ECS tinggi dan jumlah acara besar, kirimkan acara tersebut ke Simple Message Queue (formerly MNS) (SMQ) dan gunakan SMQ untuk berlangganan acara tersebut.
Prasyarat
EventBridge diaktifkan dan izin yang diperlukan diberikan kepada Pengguna Resource Access Management (RAM). Untuk informasi lebih lanjut, lihat Aktifkan EventBridge dan Berikan Izin kepada Pengguna RAM.
Robot chatbot DingTalk dibuat. URL webhook dan token rahasia dari robot chatbot DingTalk dicatat.
Fungsi dan layanan dibuat di Function Compute. Untuk informasi lebih lanjut, lihat Kelola Layanan dan Kelola Fungsi.
SMQ diaktifkan dan antrian SMQ dibuat. Untuk informasi lebih lanjut, lihat Aktifkan SMQ dan Otorisasi Pengguna RAM untuk Mengakses SMQ dan Memulai dengan Pesan Berbasis Antrian.
Langkah 1: Pilih bus acara sistem
Secara default, EventBridge membuat bus acara sistem dengan nama default. Acara yang dihasilkan di layanan Alibaba Cloud dikirimkan ke bus acara sistem secara real-time melalui berbagai saluran. Anda dapat menanyakan dan berlangganan acara pada bus acara sistem.
Masuk ke Konsol EventBridge. Di panel navigasi sisi kiri, klik Event Buses.
Di bilah navigasi atas, pilih wilayah.
Di halaman Event Buses, temukan bus acara sistem dan klik namanya default.
Langkah 2: Buat aturan langganan untuk acara ECS
Di panel navigasi sisi kiri halaman detail bus acara sistem, klik Event Rules dan kemudian klik Create Rule.
Di wizard Create Rule, lakukan langkah-langkah berikut:
Di langkah Configure Basic Info, masukkan nama aturan di bidang Name dan deskripsi aturan di bidang Description. Lalu, klik Next Step.
Di langkah Configure Event Pattern, konfigurasikan parameter dan klik Next Step. Item berikut menjelaskan parameter:
Pilih Alibaba Cloud Service Event Sources untuk parameter Jenis Sumber Acara.
Pilih acs.ecs Elastic Compute Service (ECS) dari daftar drop-down Event Source.
Pilih jenis acara yang ingin Anda langgani dari daftar drop-down Event Type. Anda dapat memilih beberapa jenis acara.
Di editor kode Event Pattern Debugging, Anda dapat melihat kode contoh dari acara yang ingin Anda langgani. Misalnya, jika Anda memilih ecs:Instance:StateChange Instance Status Changes Within Lifecycle dari daftar drop-down Jenis Acara, kode contoh berikut ditampilkan di editor kode Debugging Pola Acara:
{ "id": "45ef4dewdwe1-7c35-447a-bd93-fab****", "source": "acs.ecs", "specversion": "1.0", "subject": "acs.ecs:cn-hangzhou:123456789098****:215672", "time": "2020-11-19T21:04:41Z", "type": "ecs:Instance:StateChange", "aliyunaccountid": "123456789098****", "aliyunpublishtime": "2020-11-19T21:04:42Z", "aliyuneventbusname": "default", "aliyunregionid": "cn-hangzhou", "aliyunpublishaddr": "172.25.XX.XX", "data": { "instanceName": "iZ0jl0kyquo46h****", "instanceType": "ecs.c6.large", "privateIpAddress": "172.21.XX.XX", "publicIpAddress": "8.37.XX.XX", "resourceId": "i-0jl0kyquo46****", "resourceType": "ALIYUN::ECS::Instance", "spotStrategy": "SpotWithPriceLimit", "state": "Running" } }
Di langkah Configure Targets, pilih layanan ke mana Anda ingin mengirimkan acara dan tentukan skenario di mana acara didorong.
Skenario 1: Dorong acara ECS ke SMQ
Anda dapat menggunakan SMQ untuk berlangganan acara dalam skenario di mana latensi acara tinggi dan jumlah acara besar. Untuk informasi tentang penagihan SMQ, lihat Ikhtisar Penagihan.
Service Type: Pilih SMQ.
Queue: Pilih antrian SMQ yang Anda buat.
Message Body: Pilih Acara Lengkap.
Enable Base64 Decoding: Pilih Yes. Setelah Anda mengaktifkan enkode Base64, data Anda dienkripsi dalam format Base64 sebelum dikirimkan ke antrian SMQ tujuan.
Jika Anda mengatur parameter Jenis Layanan ke SMQ, Anda dapat mengunduh file NetworkInterfaceDemo.zip untuk mendengarkan pesan SMQ dan mendapatkan acara.
Skenario 2: Dorong acara ECS ke DingTalk
Service Type: Pilih DingTalk.
Address: Masukkan URL webhook dari robot chatbot DingTalk.
Secret Key: Masukkan kunci dari robot chatbot DingTalk.
Pushed Content: Anda dapat menentukan template kustom dan memperkenalkan parameter acara ECS yang ingin Anda dorong ke robot chatbot DingTalk di template. Misalnya, Anda dapat mengonfigurasi parameter instanceName dan state dan mendorong parameter tersebut ke robot chatbot DingTalk. Kode contoh:
Variabel: Gunakan JSONPath untuk mendapatkan informasi bidang tentang parameter acara ECS yang ingin Anda dorong dan tentukan nama variabel.
{ "instanceName":"$.data.instanceName", "state":"$.data.state" }Template: Tentukan template dalam format yang diminta oleh robot chatbot DingTalk dan perkenalkan variabel yang didefinisikan di editor kode Variabel ke template.
{ "msgtype": "text", "text": { "content": "${instanceName} state is ${state}" } }
Skenario 3: Dorong acara ECS ke layanan HTTP atau HTTPS hilir
Service Type: Pilih HTTP atau HTTPS.
URL: Tentukan URL yang ingin Anda gunakan untuk menerima acara.
Body: Tentukan isi acara yang ingin Anda terima. EventBridge memungkinkan Anda mentransformasi acara menjadi format yang diperlukan dan kemudian mendorong acara ke layanan HTTP tujuan. Nilai valid: Acara Lengkap, Sebagian Acara, Nilai Tetap, dan Template. Untuk informasi lebih lanjut, lihat Transformasi Acara.
Network Type:
Internet: Akses URL tujuan melalui Internet.
VPC: Jika akses Internet tidak diaktifkan untuk URL tujuan, Anda dapat memilih nilai ini. Jika Anda memilih nilai ini, Anda harus mengonfigurasi parameter VPC, vSwitch, dan Security Group.
Skenario 4: Dorong acara ECS jenis tertentu untuk memicu operasi
Jika Anda ingin memicu operasi tertentu ketika acara ECS jenis tertentu terjadi, Anda dapat memilih Function Compute sebagai layanan tujuan. Dengan cara ini, Anda dapat mendorong acara ECS jenis tertentu ke fungsi Function Compute dan menentukan operasi yang ingin Anda picu di kode fungsi.
Service Type: Pilih Function Compute.
Service: Pilih nama layanan yang Anda buat di Function Compute.
Function: Pilih nama fungsi yang Anda buat di Function Compute.
Event: Tentukan isi acara yang ingin Anda terima. EventBridge memungkinkan Anda mentransformasi acara menjadi format yang diperlukan dan kemudian mendorong acara ke Function Compute. Nilai valid: Acara Lengkap, Sebagian Acara, Nilai Tetap, dan Template. Untuk informasi lebih lanjut, lihat Transformasi Acara.
Invocation Mode:
Sinkron: Permintaan dianggap berhasil hanya jika acara diterima oleh Function Compute dan diproses oleh fungsi.
Asinkron: Permintaan dianggap berhasil setelah acara diterima oleh Function Compute.
Untuk informasi lebih lanjut, lihat Rute Acara ke Function Compute.
Skenario 5: Agregasikan acara ECS yang dihasilkan di beberapa akun Alibaba Cloud
EventBridge memungkinkan Anda mengumpulkan acara ECS yang dihasilkan di berbagai akun dan wilayah Alibaba Cloud ke bus acara yang dibuat menggunakan satu akun Alibaba Cloud di wilayah tertentu. Dalam hal ini, Anda harus memilih EventBridge sebagai layanan tujuan.
Destination Type:
Same-account Event Bus: Kirimkan acara ke bus acara lain yang dibuat menggunakan akun Alibaba Cloud yang sama.
Cross-account Event Bus: Kirimkan acara ke bus acara yang dibuat menggunakan akun Alibaba Cloud lain. Jika Anda memilih Bus Acara Antar Akun, Anda harus memberikan izin yang diperlukan kepada pengguna RAM. Untuk informasi lebih lanjut, lihat Rute Acara ke EventBridge.
Region: Anda dapat mengirimkan acara yang dibuat di wilayah di Tiongkok Daratan hanya ke wilayah lain di Tiongkok Daratan, dan acara yang dibuat di wilayah di luar Tiongkok Daratan hanya ke wilayah lain di luar Tiongkok Daratan.
Event Bus: Pilih nama bus acara ke mana Anda ingin mengirimkan acara.
Event: Gunakan nilai default Acara Lengkap. Anda tidak dapat mengubah nilai parameter ini.
Di bagian Kebijakan Pengulangan dan Antrian Pesan Gagal dari langkah Configure Targets, Anda dapat menentukan kebijakan pengulangan dan antrian pesan gagal berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Kebijakan Pengulangan dan Antrian Pesan Gagal.
Untuk informasi tentang skenario lain di mana EventBridge digunakan untuk berlangganan acara ECS, lihat Tipe Layanan Target.
Langkah 3: Picu acara
Dalam contoh ini, acara ECS jenis ecs:Instance:StateChange Perubahan Status Instance Dalam Siklus Hidup dipicu. Untuk memicu jenis acara ini, Anda harus mengubah status instance ECS.
Masuk ke Konsol ECS.
Di panel navigasi sisi kiri, pilih .
Di bilah navigasi atas, pilih wilayah tempat instance ECS yang ingin Anda kelola berada.
Temukan instance ECS yang ingin Anda kelola dan pilih di kolom Actions untuk mengubah status instans tersebut.
Langkah 4: Lihat hasil pengiriman
Tanyakan apakah acara ECS dengan jenis tertentu telah dihasilkan.
EventBridge memungkinkan Anda menanyakan acara ECS berdasarkan rentang waktu, jenis acara, nama aturan langganan, dan ID acara. Untuk informasi lebih lanjut, lihat Tanyakan Acara Berdasarkan ID Acara.
Tanyakan hasil pengiriman acara ECS.
Anda dapat mengklik Event Trace di kolom Actions dari acara yang Anda tanyakan di langkah sebelumnya untuk melihat jejak pengiriman. Jejak pengiriman mencakup tujuan acara, status pengiriman, jumlah kali acara dikirimkan, dan waktu ketika acara dikirimkan.

Pemantauan dan peringatan acara
Anda dapat melihat jumlah panggilan API, tingkat keberhasilan pengiriman, dan latensi pengiriman acara ECS yang Anda langgani di dasbor EventBridge. Anda dapat mengonfigurasi aturan peringatan berdasarkan kebutuhan bisnis Anda.
Masuk ke Konsol CloudMonitor.
Di panel navigasi sisi kiri, pilih .
Di pohon navigasi sisi kiri halaman Cloud Service Monitoring, klik Middleware. Di bagian Middleware pada halaman yang muncul, arahkan kursor ke EventBridge dan kemudian klik EventBus.

Di sudut kiri atas halaman EventBus, pilih wilayah. Lalu, klik Monitoring Charts di kolom Actions dari bus acara default untuk melihat detail pemantauan.

Di halaman yang muncul, Anda dapat mengonfigurasi aturan peringatan untuk sumber daya EventBridge. Ketika peringatan dipicu berdasarkan aturan peringatan yang dikonfigurasi, CloudMonitor mengirimkan notifikasi peringatan kepada Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan Aturan Peringatan.
Kebijakan pengulangan dan antrian pesan gagal
Setelah acara ditulis ke bus acara, EventBridge memastikan bahwa acara didorong ke layanan hilir setidaknya sekali. Jika layanan hilir tidak dapat menerima acara seperti yang diharapkan karena pengecualian seperti kegagalan server, layanan tidak tersedia, dan gangguan jaringan, EventBridge memungkinkan Anda mengonfigurasi kebijakan pengulangan, kebijakan toleransi kesalahan, dan antrian pesan gagal untuk menangani pengecualian tersebut. Anda dapat mengonfigurasi kebijakan pengulangan dan antrian pesan gagal untuk acara ECS yang Anda langgani di Langkah 2: Buat Aturan Langganan untuk Acara ECS untuk memastikan bahwa acara dikirimkan sesuai harapan.
Kebijakan Pengulangan
Jika layanan hilir tidak dapat menerima acara seperti yang diharapkan, pengecualian terjadi pada acara yang didorong dari EventBridge. Dalam hal ini, Anda dapat mengonfigurasi kebijakan pengulangan untuk acara tersebut di konsol EventBridge untuk memaksimalkan tingkat keberhasilan pengiriman acara ke layanan hilir.
Backoff Retry: Acara yang gagal dapat diulang hingga tiga kali. Interval antara dua pengulangan berturut-turut adalah nilai acak antara 10 dan 20 detik.
Exponential Decay Retry: Acara yang gagal dapat diulang 176 kali pada interval bertambah dalam rentang 1 hingga 512 detik. Pengulangan dapat berlangsung hingga satu hari. Interval spesifik adalah 1 detik, 2 detik, 4 detik, 8 detik, 16 detik, 32 detik, 64 detik, 128 detik, 256 detik, dan 512 detik. Nilai 512 detik digunakan untuk 167 pengulangan.
Antrian Pesan Gagal
Jika acara masih gagal didorong setelah jumlah maksimum pengulangan yang ditentukan tercapai, EventBridge secara otomatis membuang acara tersebut. Jika Anda ingin menyimpan acara tersebut, Anda dapat menentukan antrian pesan gagal dan mengirimkan acara ke antrian tersebut. EventBridge memungkinkan Anda menggunakan antrian di ApsaraMQ for RocketMQ, SMQ, dan ApsaraMQ for Kafka, serta bus acara di EventBridge sebagai antrian pesan gagal.
Kebijakan Toleransi Kesalahan
Jika bisnis Anda memerlukan acara untuk didorong secara berurutan, ketika acara gagal didorong, Anda harus menangguhkan tugas dorongan sampai acara yang gagal berhasil didorong. Dalam hal ini, Anda harus melarang toleransi kesalahan. Jika bisnis Anda tidak memerlukan acara untuk didorong secara berurutan, kami sarankan Anda mengizinkan toleransi kesalahan untuk memastikan konkurensi dorongan maksimum.
Fault Tolerance Allowed: Toleransi kesalahan diizinkan. Jika pengecualian terjadi pada acara, pemrosesan acara tidak diblokir. Jika acara gagal didorong setelah jumlah maksimum pengulangan yang ditentukan oleh kebijakan pengulangan tercapai, acara tersebut dikirimkan ke antrian pesan gagal atau dibuang.
Fault Tolerance Prohibited: Toleransi kesalahan tidak diizinkan. Jika pengecualian terjadi pada acara dan acara gagal didorong setelah jumlah maksimum pengulangan yang ditentukan oleh kebijakan pengulangan tercapai, pemrosesan acara diblokir.