Delen via


Event Grid gebruiken

CycleCloud kan cluster- en knooppunt gebeurtenissen verzenden naar Azure Event Grid. Event Grid accepteert gebeurtenissen van een producent (in dit geval CycleCloud) en stuurt deze door naar een of meer bestemmingen. In dit document gebruiken we Azure Storage-wachtrijen als bestemming.

Maak eerst een aangepast Event Grid-onderwerp en -abonnement zoals beschreven in de Event Grid-quickstart.

Ten tweede configureert u CycleCloud om te publiceren naar het Event Grid-onderwerp dat u hierboven hebt gemaakt. Klik op het tandwielpictogram Instellingen in de linkerbovenhoek en dubbelklik vervolgens op het item CycleCloud in de lijst. Selecteer het Event Grid-onderwerp in de vervolgkeuzelijst en klik op Opslaan.

Event Grid-onderwerp kiezen

Ten derde voegt u een knooppunt toe aan het cluster. Hiermee worden onmiddellijk twee gebeurtenissen gegenereerd: een Microsoft.CycleCloud.ClusterSizeIncreased gebeurtenis en een Microsoft.CycleCloud.NodeAdded gebeurtenis.

Maak ten slotte het script waarmee gebeurtenissen uit de wachtrij worden verwerkt. In dit geval gebruiken we de Python 3 SDK.

Maak een bestand met de naam 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)

Roep dit vervolgens aan met de informatie voor de bovenstaande wachtrij:

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

Hiermee worden gebeurtenissen opgehaald uit de wachtrij en wordt de inhoud ervan afgedrukt. Het proces wordt uitgevoerd totdat het handmatig wordt beƫindigd.

Notitie

Er zijn nog veel meer eigenschappen voor gebeurtenissen. Zie de pagina Gebeurtenissen voor meer informatie.