Kluster alur kerja dapat diintegrasikan dengan Simple Message Queue (formerly MNS) Alibaba Cloud. Anda dapat menggunakan Simple Message Queue (formerly MNS) sebagai perantara untuk menghubungkan berbagai sumber event dan memicu alur kerja. Ketika sebuah event baru—seperti event OSS atau EventBridge—terjadi, Simple Message Queue (formerly MNS) menerima pesan yang sesuai. Argo kemudian secara otomatis memicu alur kerja berdasarkan kondisi pemicu event yang ditentukan, sehingga mengotomatiskan eksekusi alur kerja.
Prasyarat
Layanan dan fitur berikut telah diaktifkan.
Aktifkan Simple Message Queue (formerly MNS) dan berikan izin. Fitur ini dikenai biaya Simple Message Queue (formerly MNS). Untuk informasi lebih lanjut tentang penagihan, lihat Ikhtisar penagihan.
Kluster alur kerja telah dibuat dan Antarmuka baris perintah (CLI) Alibaba Cloud Argo telah diunduh.
Langkah 1: Buat Event Bus
Event Bus dapat digunakan bersama oleh alur kerja berbasis event dalam satu namespace. Anda dapat membuat Event Bus menggunakan NATS atau Simple Message Queue (formerly MNS). Jika Anda telah membuat Event Bus, Anda dapat langsung menuju Langkah 2: Buat Sumber Event.
Buat melalui NATS
Buat file
event-bus.yaml. Kode berikut merupakan contoh:apiVersion: argoproj.io/v1alpha1 kind: EventBus metadata: name: default spec: nats: native: replicas: 3 auth: tokenJalankan perintah berikut untuk membuat EventBus.
kubectl apply -f event-bus.yamlCatatanSetelah perintah berhasil dijalankan, pod Event Bus dibuat di namespace default. Semua operasi selanjutnya harus dilakukan di namespace yang sama.
Jalankan perintah berikut untuk memverifikasi bahwa pod Event Bus telah dimulai.
kubectl get pod
Buat menggunakan Simple Message Queue (formerly MNS)
Pada halaman Topics, buat topik bernama argoeventbus. Pada halaman Topic Details, peroleh titik akhir dari bagian Endpoint.
Buat pengguna RAM, berikan izin
AliyunMNSFullAccesskepada pengguna RAM tersebut, lalu peroleh ID AccessKey dan Rahasia AccessKey pengguna RAM tersebut.Untuk informasi lebih lanjut, lihat Buat pengguna RAM, Berikan izin kepada pengguna RAM, Buat pasangan Kunci Akses, dan Lihat informasi AccessKey pengguna RAM.
Jalankan perintah berikut untuk membuat Secret guna menyimpan ID AccessKey dan Rahasia AccessKey.
kubectl create secret generic mns-secret\ --from-literal=accesskey=*** \ --from-literal=secretkey=***Buat file
event-bus-mns.yamldan ganti nilai parameter dalam contoh dengan nilai aktual Anda.topic: Ganti nilai ini dengan nama topik Simple Message Queue (formerly MNS) yang Anda buat di Langkah 2.endpoint: Ganti nilai ini dengan titik akhir yang Anda peroleh di Langkah 2.
apiVersion: argoproj.io/v1alpha1 kind: EventBus metadata: name: default spec: alimns: accessKey: key: accesskey name: mns-secret secretKey: key: secretkey name: mns-secret topic: argoeventbus # Nama topik Simple Message Queue (formerly MNS). endpoint: http://165***368.mns.<region>.aliyuncs.com # Titik akhir Simple Message Queue (formerly MNS).Jalankan perintah berikut untuk menerapkan file
event-bus-mns.yamldan membuat sumber daya Event Bus.kubectl apply -f event-bus-mns.yaml
Langkah 2: Buat Sumber Event
Pada halaman Queues, buat antrian bernama test-event-queue. Pada halaman Queue Details, peroleh titik akhir dari bagian Endpoint.
CatatanJika Anda membuat Event Bus menggunakan Simple Message Queue (formerly MNS), Anda dapat melewatkan Langkah 3 hingga Langkah 5 dan langsung melanjutkan ke Langkah 6.
Buat pengguna RAM, berikan izin
AliyunMNSFullAccesskepada pengguna RAM tersebut, lalu peroleh ID AccessKey dan Rahasia AccessKey pengguna RAM tersebut.Untuk informasi lebih lanjut, lihat Buat pengguna RAM, Berikan izin kepada pengguna RAM, Buat pasangan Kunci Akses, dan Lihat informasi AccessKey pengguna RAM.
Jalankan perintah berikut untuk membuat Secret guna menyimpan ID AccessKey dan Rahasia AccessKey.
kubectl create secret generic mns-secret\ --from-literal=accesskey=*** \ --from-literal=secretkey=***Buat file
event-source.yamldan ganti nilai parameter dalam contoh dengan nilai aktual Anda.topic: Atur parameter ini ke nama topik di Simple Message Queue (formerly MNS) yang Anda buat di Langkah 2.endpoint: Ganti nilai ini dengan titik akhir yang Anda peroleh di Langkah 2.
apiVersion: argoproj.io/v1alpha1 kind: EventSource metadata: name: ali-mns spec: mns: example: jsonBody: true accessKey: key: accesskey name: mns-secret secretKey: key: secretkey name: mns-secret queue: test-event-queue # Nama antrian Simple Message Queue (formerly MNS). waitTimeSeconds: 20 endpoint: http://165***368.mns.<region>.aliyuncs.com # Titik akhir Simple Message Queue (formerly MNS).Jalankan perintah berikut untuk menerapkan file
event-source.yamldan membuat Sumber Event.kubectl apply -f event-source.yamlJalankan perintah berikut untuk memeriksa apakah pod Sumber Event dimulai sebagaimana mestinya.
kubectl get pod
Langkah 3: Buat Sensor Event
Buat file
event-sensor.yamldan sematkan definisi alur kerja yang akan dijalankan ke dalam Sensor Event. Kode berikut memberikan contoh Sensor Event:Jalankan perintah berikut untuk menerapkan file
event-sensor.yamldan membuat Sensor Event.kubectl apply -f event-sensor.yamlJalankan perintah berikut untuk memeriksa apakah pod Sensor Event dimulai sebagaimana mestinya.
kubectl get pod
Saat Anda membuat Event Bus menggunakan Simple Message Queue (formerly MNS), antrian Simple Message Queue (formerly MNS) yang sesuai akan dibuat secara otomatis setelah Anda membuat Sensor Event. Antrian tersebut dinamai dengan format berikut: ackone-argowf-<namespace>-<sensor-name>-<sensor-uid>.
Langkah 4: Verifikasi bahwa mengirim pesan ke Simple Message Queue (formerly MNS) memicu alur kerja
Pada halaman Queues, temukan antrian test-event-queue dan klik Send/Receive Messages di kolom Actions.
Pada halaman Send/Receive Messages, masukkan
test trigger argo workflowsebagai konten pesan, lalu klik Send Message.Jalankan perintah berikut untuk memeriksa status alur kerja di kluster alur kerja.
argo listOutput berikut dikembalikan:
NAME STATUS AGE DURATION PRIORITY ali-mns-workflow-5prz7 Running 6s 6s 0Jalankan perintah berikut untuk mendapatkan log alur kerja dan melihat konten pesan.
argo logs ali-mns-workflow-5prz7PentingNama alur kerja dalam perintah ini harus sama dengan nama alur kerja yang dikembalikan pada langkah sebelumnya.
ali-mns-workflow-5prz7hanyalah contoh. Anda harus menggantinya dengan nilai kembalian aktual di lingkungan Anda.Konten pesan dikodekan dalam Base64.
Output berikut dikembalikan:

Langkah 5: Hapus sumber daya terkait event
Hapus sumber daya terkait.
Hapus Sensor Event
kubectl delete sensor ali-mnsHapus Sumber Event
kubectl delete eventsource ali-mnsHapus Event Bus
kubectl delete eventbus default
Jalankan perintah berikut untuk memeriksa status pod dan memastikan semua sumber daya telah dihapus.
kubectl get pod