Sdílet prostřednictvím


Použití Služby Event Grid

CycleCloud může odesílat události clusteru a uzlu do Azure Event Grid. Event Grid přijímá události od producenta (v tomto případě CycleCloud) a směruje je do jednoho nebo více cílů. V tomto dokumentu budeme jako cíl používat fronty služby Azure Storage .

Nejprve vytvořte vlastní téma a odběr Event Gridu, jak je popsáno v rychlém startu služby Event Grid.

Za druhé nakonfigurujte CycleCloud tak, aby se publikoval do tématu Event Gridu vytvořeného výše. V levém horním rohu klikněte na ikonu ozubeného kola Nastavení a pak v seznamu poklikejte na položku CycleCloud . V rozevíracím seznamu vyberte téma Event Gridu a klikněte na Uložit.

Zvolte téma Event Gridu.

Za třetí přidejte uzel do clusteru. Tím se okamžitě vygenerují dvě události: Microsoft.CycleCloud.ClusterSizeIncreased událost a Microsoft.CycleCloud.NodeAdded událost.

Nakonec vytvořte skript, který bude zpracovávat události z fronty. V tomto případě budeme používat sadu Python 3 SDK.

Vytvořte soubor s názvem 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)

Pak tuto akci vyvolejte s informacemi o frontě vytvořené výše:

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

Tím se události nahrají z fronty a vytisknou se jejich obsah. Proces se spustí, dokud ručně neskončil.

Poznámka

U událostí existuje mnoho dalších vlastností. Další informace najdete na stránce Události .