All Products
Search
Document Center

Container Service for Kubernetes:Memicu alur kerja menggunakan Simple Message Queue (formerly MNS)

Last Updated:Nov 11, 2025

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

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

  1. Buat file event-bus.yaml. Kode berikut merupakan contoh:

    apiVersion: argoproj.io/v1alpha1
    kind: EventBus
    metadata:
      name: default
    spec:
      nats:
        native:
          replicas: 3
          auth: token
  2. Jalankan perintah berikut untuk membuat EventBus.

    kubectl apply -f event-bus.yaml
    Catatan

    Setelah perintah berhasil dijalankan, pod Event Bus dibuat di namespace default. Semua operasi selanjutnya harus dilakukan di namespace yang sama.

  3. Jalankan perintah berikut untuk memverifikasi bahwa pod Event Bus telah dimulai.

    kubectl get pod

Buat menggunakan Simple Message Queue (formerly MNS)

  1. Masuk ke Konsol Simple Message Queue (formerly MNS).

  2. Pada halaman Topics, buat topik bernama argoeventbus. Pada halaman Topic Details, peroleh titik akhir dari bagian Endpoint.

  3. Buat pengguna RAM, berikan izin AliyunMNSFullAccess kepada 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.

  4. 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=***
  5. Buat file event-bus-mns.yaml dan 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).
  6. Jalankan perintah berikut untuk menerapkan file event-bus-mns.yaml dan membuat sumber daya Event Bus.

    kubectl apply -f event-bus-mns.yaml

Langkah 2: Buat Sumber Event

  1. Masuk ke Konsol Simple Message Queue (formerly MNS).

  2. Pada halaman Queues, buat antrian bernama test-event-queue. Pada halaman Queue Details, peroleh titik akhir dari bagian Endpoint.

    Catatan

    Jika Anda membuat Event Bus menggunakan Simple Message Queue (formerly MNS), Anda dapat melewatkan Langkah 3 hingga Langkah 5 dan langsung melanjutkan ke Langkah 6.

  3. Buat pengguna RAM, berikan izin AliyunMNSFullAccess kepada 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.

  4. 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=***
  5. Buat file event-source.yaml dan 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).
  6. Jalankan perintah berikut untuk menerapkan file event-source.yaml dan membuat Sumber Event.

    kubectl apply -f event-source.yaml
  7. Jalankan perintah berikut untuk memeriksa apakah pod Sumber Event dimulai sebagaimana mestinya.

    kubectl get pod

Langkah 3: Buat Sensor Event

  1. Buat file event-sensor.yaml dan sematkan definisi alur kerja yang akan dijalankan ke dalam Sensor Event. Kode berikut memberikan contoh Sensor Event:

    Klik untuk melihat kode contoh

    apiVersion: argoproj.io/v1alpha1
    kind: Sensor
    metadata:
      name: ali-mns
    spec:
      template:
        serviceAccountName: default
      dependencies:
        - name: test-dep
          eventSourceName: ali-mns    # Cocokkan dengan nama sumber event.
          eventName: example          # Cocokkan dengan definisi nama event di sumber event.
      triggers:
        - template:
            name: mns-workflow
            k8s:
              operation: create
              source:
                resource:
                  apiVersion: argoproj.io/v1alpha1    # Sematkan definisi alur kerja.
                  kind: Workflow
                  metadata:
                    generateName: ali-mns-workflow-
                  spec:
                    entrypoint: whalesay
                    arguments:
                      parameters:        # Teruskan konten event sebagai parameter.
                        - name: message
                          # ini adalah nilai yang harus ditimpa
                          value: hello world
                    templates:
                      - name: whalesay
                        inputs:
                          parameters:
                            - name: message
                        container:
                          image: docker/whalesay:latest
                          command: [cowsay]
                          args: ["{{inputs.parameters.message}}"]
              parameters:
                - src:        # Uraikan konten event dan teruskan ke alur kerja.
                    dependencyName: test-dep
                    dataKey: body
                  dest: spec.arguments.parameters.0.value
  2. Jalankan perintah berikut untuk menerapkan file event-sensor.yaml dan membuat Sensor Event.

    kubectl apply -f event-sensor.yaml
  3. Jalankan perintah berikut untuk memeriksa apakah pod Sensor Event dimulai sebagaimana mestinya.

    kubectl get pod
Catatan

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

  1. Masuk ke Konsol Simple Message Queue (formerly MNS).

  2. Pada halaman Queues, temukan antrian test-event-queue dan klik Send/Receive Messages di kolom Actions.

  3. Pada halaman Send/Receive Messages, masukkan test trigger argo workflow sebagai konten pesan, lalu klik Send Message.

  4. Jalankan perintah berikut untuk memeriksa status alur kerja di kluster alur kerja.

    argo list

    Output berikut dikembalikan:

    NAME                     STATUS    AGE   DURATION   PRIORITY
    ali-mns-workflow-5prz7   Running   6s    6s         0
  5. Jalankan perintah berikut untuk mendapatkan log alur kerja dan melihat konten pesan.

    argo logs ali-mns-workflow-5prz7
    Penting
    • Nama alur kerja dalam perintah ini harus sama dengan nama alur kerja yang dikembalikan pada langkah sebelumnya. ali-mns-workflow-5prz7 hanyalah contoh. Anda harus menggantinya dengan nilai kembalian aktual di lingkungan Anda.

    • Konten pesan dikodekan dalam Base64.

    Output berikut dikembalikan: image.png

Langkah 5: Hapus sumber daya terkait event

  1. Hapus sumber daya terkait.

    • Hapus Sensor Event

      kubectl delete sensor ali-mns
    • Hapus Sumber Event

      kubectl delete eventsource ali-mns
    • Hapus Event Bus

      kubectl delete eventbus default
  2. Jalankan perintah berikut untuk memeriksa status pod dan memastikan semua sumber daya telah dihapus.

    kubectl get pod