Acara Infrastruktur Oracle Cloud adalah layanan yang memungkinkan Anda untuk membuat beberapa otomatisasi berdasarkan perubahan status dalam suatu layanan, atau mungkin berdasarkan semacam input yang diterima. Sekarang, mundur selangkah, dan Acara adalah terjadinya situasi tertentu. Agar situasi ini berguna, peristiwa harus disertai dengan beberapa jenis informasi, misalnya, nama instance, nama objek, kode status, dll. Informasi tersebut dapat memberikan otomatisasi sesuatu untuk dikerjakan.
Acara adalah dasar dari arsitektur tanpa server, terkadang juga disebut arsitektur yang digerakkan oleh peristiwa . Selain itu, peristiwa sangat penting untuk arsitektur perangkat lunak kontemporer karena memungkinkan untuk memisahkan layanan, membantu membuat panggilan asinkron perangkat lunak dan memfasilitasi proses penskalaan.
Contoh arsitektur yang digerakkan oleh peristiwa:
- Anda mengembangkan aplikasi pemrosesan gambar .
- Setiap kali gambar baru diunggah ke keranjang itu akan memicu peristiwa .
- Acara ini memanggil fungsi yang mengambil gambar itu dan membuat thumbnail darinya .
- Gambar mini disimpan di ember lain.
- Ini memicu peristiwa lain yang mengirimkan pemberitahuan email kepada klien.
CATATAN Fungsi OCI adalah solusi tanpa server dari OCI, yang memungkinkan Anda menjalankan perangkat lunak tujuan tunggal tanpa menyediakan perangkat keras atau VM, perangkat lunak berjalan berdasarkan suatu acara atau pekerjaan terjadwal, seperti memiliki fungsi sebagai layanan. Lainnya dari Fungsi DI SINI
Kembali ke Acara OCI, beberapa karakteristik penting adalah:
- Layanan acara menggunakan objek JSON untuk menentukan aturan acara . Anda dapat memikirkan aturan seperti filter yang akan menentukan acara mana yang penting untuk dipertimbangkan, untuk menentukan apa yang akan menjadi masukan Anda. Pada dasarnya, Aturan memicu tindakan . Contoh logika aturan dapat berupa:
MATCH event WHERE (
eventType EQUALS ANY OF (
com.oraclecloud.computeapi.launchinstance.end
)
)
Peristiwa ini akan dipicu saat instance komputasi baru dibuat
Tapi...
Di mana bagian JSON??
Pada acara itu sendiri, mari kita lihat contoh acara:
{
"eventType": "com.oraclecloud.computeapi.launchinstance.end",
"cloudEventsVersion": "0.1",
"eventTypeVersion": "2.0",
"source": "ComputeApi",
"eventTime": "2019-08-16T12:07:42.794Z",
"contentType": "application/json",
"data": {
"compartmentId": "ocid1.compartment.oc1..unique_ID",
"compartmentName": "example_compartment",
"resourceName": "my_instance",
"resourceId": "ocid1.instance.oc1.phx.unique_ID",
"availabilityDomain": "availability_domain",
"additionalDetails": {
"imageId": "ocid1.image.oc1.phx.unique_ID",
"shape": "VM.Standard2.1",
"type": "CustomerVmi"
}
},
"eventID": "unique_ID",
"extensions": {
"compartmentId": "ocid1.compartment.oc1..unique_ID"
}
}
Ini adalah contoh instance yang baru saja dibuat, dan akan memicu acara.
- Anda dapat menambahkan ketentuan atau filter untuk mempersempit acara Anda lebih jauh .
Selama konfigurasi aturan acara, Anda dapat menambahkan beberapa atribut untuk menyaring lebih lanjut hasil Anda
Pada contoh ini kami memfilter hasil dari jenis acara, untuk perubahan hanya di Sandbox dan dev kompartemen, seluruh logika terlihat seperti:
MATCH event WHERE (
eventType EQUALS ANY OF (
com.oraclecloud.computeapi.launchinstance.end
)
AND (
compartmentName MATCHES ANY OF (
Sandbox,
dev
)
)
)
Selain ini, kami dapat menambahkan Kondisi filter berdasarkan Tag
MATCH event WHERE (
eventType EQUALS ANY OF (
com.oraclecloud.computeapi.launchinstance.end
)
AND (
compartmentName MATCHES ANY OF (
Sandbox,
dev
)
definedTags INCLUDES ANY OF (
Oracle-Tags.CreatedBy.elopez
)
)
)
Secara visual sesuatu seperti:
Pada dasarnya acara ini akan dipicu setiap kali sebuah instance diluncurkan di Sandbox ATAU pengembang kompartemen oleh pengguna elopez .
- Aturan yang paling menentukan dan tindakan .
Tujuan utama dari aturan adalah untuk memprovokasi sesuatu ketika mereka dipicu, jika tidak, tidak akan berguna.
Tindakan adalah respons yang ditentukan untuk kecocokan peristiwa
Tindakan dapat dibuat menggunakan:
Pemberitahuan kirim pesan ke layanan notifikasi yang dapat mengirimkannya ke titik akhir yang berlangganan topik
Ini bisa berupa:alamat email, grup email, saluran slack, dll.
Streaming menggunakan layanan ini, Anda akan memasukkan peristiwa Anda ke dalam aliran data untuk mendapatkan analisis dan kecerdasan lebih lanjut atas data ini.
Fungsi fungsi dapat dijalankan berdasarkan peristiwa yang diterima. Contoh cepat:
Anda dapat memiliki peristiwa yang dipicu setiap kali instance baru dibuat dan ini akan menjalankan fungsi yang mengonfigurasi pemantauan untuk instance baru tersebut.
- Anda perlu menambahkan izin agar layanan Acara dapat memanggil layanan tindakan .
Pertimbangkan tindakan apa pun ditolak secara default di OCI sehingga Anda perlu membuat kebijakan yang mengizinkan layanan Peristiwa untuk menjalankan tindakan tersebut.
Izin dasar yang Anda perlukan adalah:
Allow service cloudEvents to use ons-topic in tenancy
Allow service cloudEvents to use functions-family in tenancy
Ini untuk Penyewaan tetapi Anda dapat menetapkannya ke Kompartemen tertentu
Allow service cloudEvents to use ons-topic in compartment DEV
Allow service cloudEvents to use functions-family in compartment DEV
Selengkapnya tentang kompartemen DI SINI