Bagikan melalui


Menggunakan Event Grid

CycleCloud dapat mengirim peristiwa kluster dan simpul ke Azure Event Grid. Event Grid menerima peristiwa dari produsen (dalam hal ini CycleCloud) dan merutekannya ke satu atau beberapa tujuan. Dalam artikel ini, kami menggunakan Antrean Azure Storage sebagai tujuan.

Pertama, buat topik dan langganan Event Grid kustom seperti yang diuraikan dalam mulai cepat Event Grid.

Kedua, konfigurasikan CycleCloud untuk menerbitkan ke topik Event Grid. Pilih ikon 'Pengaturan' berbentuk roda gigi di kiri atas, lalu klik dua kali item CycleCloud yang ada dalam daftar. Pilih topik Event Grid dari menu dropdown dan pilih Simpan.

Pilih topik Event Grid

Ketiga, tambahkan simpul ke kluster. Langkah ini segera menghasilkan dua peristiwa: peristiwa Microsoft.CycleCloud.ClusterSizeIncreased dan peristiwa Microsoft.CycleCloud.NodeAdded.

Terakhir, buat skrip yang memproses peristiwa dari antrean. Dalam hal ini, gunakan Python 3 SDK.

Buat file bernama get_messages.py:

from azure.storage.queue import QueueClient, TextBase64DecodePolicy
import json, sys, time

connect_str = sys.argv[1]
queue_name = sys.argv[2]

queue_client = QueueClient.from_connection_string(connect_str, queue_name, message_decode_policy=TextBase64DecodePolicy())

while True:
    messages = queue_client.receive_messages(timeout=60, visibility_timeout=5, messages_per_page=32)
    for msg_batch in messages.by_page():
        for msg in msg_batch:
            message_body = json.loads(msg.content)
            data = message_body["data"]

            print("%s %s %s" % (message_body["eventType"], data.get("status"), data.get("message")))
            queue_client.delete_message(msg.id, msg.pop_receipt)
    time.sleep(1)

Kemudian panggil skrip ini dengan informasi untuk antrean yang Anda buat sebelumnya:

python3 get_messages.py "DefaultEndpointsProtocol=https;AccountName=ACCOUNTNAME;AccountKey=ACCOUNTKEY;EndpointSuffix=core.windows.net" QUEUE_NAME

Skrip ini menarik event dari antrean dan menampilkan kontennya. Proses berjalan hingga Anda mengakhirinya secara manual.

Nota

Ada lebih banyak lagi properti pada peristiwa. Lihat halaman Peristiwa untuk informasi selengkapnya.