Topik ini menjelaskan cara mengintegrasikan Alibaba Cloud Object Storage Service (OSS) dengan Simple Message Queue (formerly MNS) Alibaba Cloud. Anda dapat mengunggah file ke OSS untuk secara otomatis memicu alur kerja yang memproses file tersebut dan menghasilkan output.
Prasyarat
Notifikasi event OSS telah dibuat.
Kluster alur kerja telah dibuat.
Antarmuka baris perintah (CLI) Alibaba Cloud Argo telah diinstal.
Langkah 1: Buat Event Bus
Alur kerja berbasis event dalam sebuah namespace dapat berbagi satu Event Bus. Jika Anda telah membuat Event Bus, Anda dapat melewati langkah ini dan melanjutkan ke Langkah 2: Buat Sumber Event.
Saat Anda membuat Event Bus dengan Simple Message Queue (formerly MNS), Pod tidak akan dibuat.
Untuk menggunakan fitur Pemicu, Anda harus membuat EventBus menggunakan NATS. Metode Simple Message Queue (formerly MNS) tidak mendukung Pemicu Sensor Argo Events open source.
Metode 1: Gunakan 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, sebuah Pod Event Bus akan dibuat di namespace default. Anda harus melakukan semua operasi selanjutnya di namespace yang sama.
Jalankan perintah berikut untuk memverifikasi bahwa Pod Event Bus telah dimulai.
kubectl get pod
Metode 2: Gunakan Simple Message Queue (formerly MNS)
Pada halaman Topic List, buat topik bernama argoeventbus. Pada halaman Topic Details, peroleh Titik akhir dari bagian Endpoint.
Buat Pengguna RAM, berikan izin
AliyunMNSFullAccesskepada pengguna tersebut, lalu peroleh ID AccessKey dan Rahasia AccessKey pengguna tersebut.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.yaml. Kode berikut merupakan contoh:topic: Ganti ini dengan nama topik Simple Message Queue (formerly MNS) yang telah Anda buat di Langkah 2.endpoint: Ganti ini dengan Titik akhir yang telah 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 di Simple Message Queue (formerly MNS). endpoint: http://165***368.mns.<region>.aliyuncs.comJalankan perintah berikut untuk menerapkan file
event-bus-mns.yaml.kubectl apply -f event-bus-mns.yaml
Langkah 2: Buat Sumber Event
Buat Pengguna RAM, berikan izin
AliyunMNSFullAccesskepada pengguna tersebut, lalu peroleh ID AccessKey dan Rahasia AccessKey pengguna tersebut. Untuk informasi selengkapnya, lihat Buat Pengguna RAM, Berikan izin kepada Pengguna RAM, Buat Pasangan Kunci Akses, dan Lihat Informasi AccessKey Pengguna RAM.Buat file
event-source.yaml. Kode berikut merupakan contoh:queue: Ganti ini dengan nama antrian Simple Message Queue (formerly MNS).endpoint: Ganti ini dengan titik akhir Simple Message Queue (formerly MNS).
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: oss-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 membuat Sumber Event.
kubectl apply -f event-source.yamlJalankan perintah berikut untuk memverifikasi bahwa Pod Sumber Event telah dimulai.
kubectl get pod
Langkah 3: Buat Sensor Event
Buat file
event-sensor.yamldan sematkan definisi alur kerja ke dalam Sensor Event. Kode berikut merupakan contoh:Jalankan perintah berikut untuk membuat Sensor Event.
kubectl apply -f event-sensor.yamlJalankan perintah berikut untuk memverifikasi bahwa Pod Sensor Event telah dimulai.
kubectl get pod
Saat Anda membuat EventBus menggunakan Simple Message Queue (formerly MNS), sebuah antrian Simple Message Queue (formerly MNS) yang sesuai akan dibuat secara otomatis setelah Sensor Event dibuat. Antrian tersebut diberi nama dengan format berikut: ackone-argowf-<namespace>-<sensor-name>-<sensor-uid>.
Langkah 4: Verifikasi bahwa mengunggah file ke OSS memicu alur kerja
Masuk ke Konsol OSS.
Unggah dua file berikut ke bucket OSS untuk memicu alur kerja. Anda harus menyiapkan file-file ini terlebih dahulu.
datafile: File data dalam format teks dengan konten kustom.
datafile.complete: File pemicu. File ini bisa berupa file kosong.
Jalankan perintah berikut di kluster alur kerja untuk melihat status alur kerja.
argo listOutput yang diharapkan adalah sebagai berikut:
NAME STATUS AGE DURATION PRIORITY process-oss-file-kmb4k Running 13s 13s 0Jalankan perintah berikut untuk mengambil log alur kerja.
argo logs process-oss-file-kmb4kPentingNama alur kerja dalam perintah harus sesuai dengan nama yang dikembalikan pada langkah sebelumnya. Nama
ali-mns-workflow-5prz7hanyalah contoh. Gantilah dengan nama aktual dari lingkungan Anda.Konten pesan dikodekan dalam Base64.
Output yang diharapkan adalah sebagai berikut:

Langkah 5: Bersihkan sumber daya terkait event
Jalankan perintah berikut untuk membersihkan sumber daya terkait event.
kubectl delete sensor process-oss-file kubectl delete eventsource ali-mns kubectl delete eventbus defaultJalankan perintah berikut untuk melihat Pod dan memastikan semua sumber daya telah dihapus.
kubectl get pod