Pemicu event layanan Alibaba Cloud memungkinkan Anda memicu fungsi melalui event dari layanan Alibaba Cloud lainnya, seperti event Cloud Monitor, event audit, event Elastic Compute Service (ECS), event Alibaba Cloud Internet of Things (IoT), serta event Operasi dan Pemeliharaan (O&M) dari berbagai layanan Alibaba Cloud. Topik ini menggunakan instance ECS sebagai contoh untuk menjelaskan cara membuat pemicu event layanan Alibaba Cloud, mengonfigurasi parameter input fungsi, dan menulis kode di konsol Function Compute.
Ikhtisar
Saat Anda mengirim permintaan untuk membuat pemicu di konsol Function Compute, Function Compute secara otomatis membuat aturan event pada event bus default. Aturan tersebut diberi nama dalam format Nama Fungsi-Nama Pemicu. Setelah pemicu dibuat, Anda dapat melihat informasinya di Konsol Function Compute serta melihat aturan event yang dibuat secara otomatis di konsol EventBridge. Ketika event dari jenis yang ditentukan dikirim dari sumber event ke event bus, fungsi yang terkait dengan pemicu tersebut akan dieksekusi.
Catatan Penggunaan
Anda dapat membuat maksimal 10 aturan event pada event bus default untuk layanan Alibaba Cloud di EventBridge. Jika batas tersebut tercapai, Anda tidak dapat membuat pemicu event tambahan untuk layanan Alibaba Cloud.
Anda tidak dapat menggunakan Serverless Devs untuk membuat pemicu event layanan Alibaba Cloud.
Prasyarat
EventBridge: Aktifkan EventBridge dan berikan izin
Function Compute: Buat fungsi
Langkah 1: Buat pemicu
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang dituju.
Pada halaman detail fungsi, klik tab Triggers, lalu klik Create Trigger.
Pada panel Buat Pemicu, konfigurasi parameter, lalu klik OK.
Parameter
Prosedur
Contoh
Trigger Type
Pilih Elastic Compute Service (ECS).
Elastic Compute Service (ECS)
Name
Masukkan nama kustom untuk pemicu.
ecs-trigger
Version Or Alias
Nilai default adalah LATEST. Jika ingin membuat pemicu untuk versi atau alias lain, alihkan ke versi atau alias yang ditentukan di pojok kanan atas halaman detail fungsi. Untuk informasi selengkapnya tentang versi dan alias, lihat Kelola versi dan Kelola alias.
LATEST
Event Type
Pilih Custom Event Types atau Select All Event Types. Jika memilih Custom Event Types, Anda dapat memilih satu atau beberapa jenis event ECS.
Disk Retained
Event Pattern Content
Anda tidak dapat mengedit konten secara manual. Setelah memilih jenis event untuk parameter Jenis Event, konten pola event akan diisi secara otomatis. Untuk informasi selengkapnya tentang pola event, lihat Pola event.
{ "source": [ "acs.ecs" ], "type": [ "ecs:Disk:ConvertToPostpaidCompleted" ] }Invocation Method
Pilih metode pemanggilan untuk fungsi. Nilai yang valid:
Synchronous Invocation: Ini adalah metode pemanggilan default. Sebuah event memicu fungsi. Setelah eksekusi fungsi selesai, Function Compute mengembalikan hasil eksekusi. Untuk informasi selengkapnya, lihat Pemanggilan sinkron.
Asynchronous Invocation: Metode ini cocok untuk fungsi yang memiliki latensi penjadwalan panjang. Setelah sebuah event memicu fungsi, Function Compute langsung mengembalikan tanggapan dan memastikan bahwa fungsi berhasil dieksekusi setidaknya sekali. Namun, hasil eksekusi detail tidak dikembalikan. Untuk informasi selengkapnya, lihat Ikhtisar.
Pemanggilan Sinkron
Trigger State
Menentukan apakah pemicu diaktifkan segera setelah dibuat. Secara default, Enable Trigger dipilih. Artinya, pemicu diaktifkan setelah dibuat.
Aktifkan Pemicu
Setelah pemicu dibuat, pemicu tersebut muncul dalam daftar Trigger Name. Untuk memodifikasi atau menghapus pemicu, lihat Kelola pemicu.
Langkah 2: Konfigurasi parameter input fungsi
Sebuah event ECS diteruskan ke fungsi sebagai parameter input event. Anda dapat secara manual meneruskan event ke fungsi untuk mensimulasikan pemicu event.
Pada tab Code halaman detail fungsi, klik ikon
di samping Test Function dan pilih Configure Test Parameters dari daftar drop-down.Di panel Configure Test Parameters, pilih Create New Test Event atau Edit Existing Test Event, masukkan nama dan konten event, lalu klik OK.
Kode berikut menunjukkan format parameter
event. Untuk informasi selengkapnya tentang konten event dari semua sumber event layanan Alibaba Cloud yang didukung, lihat Sumber event layanan Alibaba Cloud.{ "datacontenttype": "application/json;charset=utf-8", "aliyunaccountid": "123456789098****", "data": { "result": "accomplished", "diskId": "d-bp11ba7acc69nkta****" }, "subject": "acs:ecs:cn-hangzhou:123456789098****:disk/d-bp11ba7acc69nkta****", "source": "acs.ecs", "type": "ecs:Disk:ConvertToPostpaidCompleted", "aliyunpublishtime": "2021-01-18T03:58:31.762Z", "specversion": "1.0", "aliyuneventbusname": "default", "id": "70c0414c-b260-4923-b584-1d6e5646****", "time": "2021-01-18T11:58:31.125+08:00", "aliyunregionid": "cn-hangzhou", "aliyunpublishaddr": "172.25.XX.XX" }Tabel berikut menjelaskan parameter event.
Parameter
Tipe
Contoh
Deskripsi
datacontenttype
String
application/json;charset=utf-8
Format konten parameter data. Parameter datacontenttype hanya mendukung format application/json.
aliyunaccountid
String
123456789098****
ID Akun Alibaba Cloud Anda.
data
Struct
{ "result": "accomplished", "diskId": "d-bp11ba7acc69nkta****" }Konten event. Nilainya berupa objek JSON. Konten ditentukan oleh layanan yang menghasilkan event. CloudEvents dapat berisi konteks yang disediakan oleh produsen event saat event terjadi. Informasi ini dikemas dalam parameter data.
subject
String
acs:ecs:cn-hangzhou:123456789098****:disk/d-bp11ba7acc69nkta****
Subjek event.
source
String
acs.ecs
Sumber event.
type
String
ecs:Disk:ConvertToPostpaidCompleted
Jenis event.
aliyunpublishtime
Timestamp
2021-01-18T03:58:31.762Z
Waktu saat event diterima.
specversion
String
1.0
Versi protokol CloudEvents.
aliyuneventbusname
String
default
Nama event bus yang menerima event.
id
String
70c0414c-b260-4923-b584-1d6e5646****
ID event.
time
Timestamp
2021-01-18T11:58:31.125+08:00
Waktu saat event terjadi.
aliyunregionid
String
cn-hangzhou
Wilayah tempat event diterima.
aliyunpublishaddr
String
172.25.XX.XX
Alamat server yang menerima event.
Langkah 3: Tulis dan uji kode fungsi
Setelah membuat pemicu ECS, Anda dapat menulis dan menguji kode fungsi untuk memverifikasi bahwa fungsinya bekerja dengan benar. Di lingkungan produksi, ketika sebuah event dari sumber event ECS dikirim ke Function Compute melalui EventBridge, pemicu tersebut secara otomatis mengeksekusi fungsi.
Pada halaman detail fungsi, klik tab Code. Tulis kode di editor kode dan klik Deploy Code.
Kode berikut memberikan contoh dalam Node.js.
'use strict'; /* Untuk mengaktifkan fitur initializer, implementasikan fungsi initializer sebagai berikut: exports.initializer = (context, callback) => { console.log('initializing'); callback(null, ''); }; */ exports.handler = (event, context, callback) => { console.log("event: %s", event); // Parse parameter event dan proses event tersebut. callback(null, 'return result'); }Klik Test Function.
Informasi Lebih Lanjut
Untuk memodifikasi atau menghapus pemicu, lihat Kelola pemicu.