Condividi tramite


Uso di Griglia di eventi

CycleCloud può inviare eventi cluster e nodi a Griglia di eventi di Azure. Griglia di eventi accetta eventi da un produttore (in questo caso CycleCloud) e li instrada a una o più destinazioni. In questo documento verranno usati code di archiviazione di Azure come destinazione.

Prima di tutto, creare un argomento personalizzato di Griglia di eventi e una sottoscrizione, come descritto nella guida introduttiva griglia di eventi.

In secondo luogo, configurare CycleCloud per la pubblicazione nell'argomento Griglia di eventi creato in precedenza. Fare clic sull'icona Ingranaggio impostazioni in alto a sinistra, quindi fare doppio clic sull'elemento CycleCloud nell'elenco. Selezionare l'argomento Griglia di eventi nell'elenco a discesa e fare clic su Salva.

Scegliere l'argomento Griglia di eventi

In terzo luogo, aggiungere un nodo al cluster. Verrà generato immediatamente due eventi: un Microsoft.CycleCloud.ClusterSizeIncreased evento e un Microsoft.CycleCloud.NodeAdded evento.

Creare infine lo script che elabora gli eventi dalla coda. In questo caso verrà usato Python 3 SDK.

Creare un file denominato 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)

Richiamare quindi questa operazione con le informazioni per la coda creata in precedenza:

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

In questo modo gli eventi verranno estratti dalla coda e stampati il loro contenuto. Il processo viene eseguito fino alla fine manuale.

Nota

Esistono molte altre proprietà sugli eventi. Per altre informazioni, vedere la pagina Eventi .