Compartilhar via


Usando a Grade de Eventos

O CycleCloud pode enviar eventos de cluster e nó para Grade de Eventos do Azure. A Grade de Eventos aceita eventos de um produtor (nesse caso, CycleCloud) e os encaminha para um ou mais destinos. Neste documento, usaremos as Filas de Armazenamento do Azure como destino.

Primeiro, crie um tópico e uma assinatura personalizados da Grade de Eventos, conforme descrito no início rápido da Grade de Eventos.

Em segundo lugar, configure o CycleCloud para publicar no tópico da Grade de Eventos criado acima. Clique no ícone de engrenagem Configurações no canto superior esquerdo e clique duas vezes no item CycleCloud na lista. Selecione o tópico Grade de Eventos na lista suspensa e clique em Salvar.

Escolher tópico da Grade de Eventos

Em terceiro lugar, adicione um nó ao cluster. Isso gerará imediatamente dois eventos: um Microsoft.CycleCloud.ClusterSizeIncreased evento e um Microsoft.CycleCloud.NodeAdded evento.

Por fim, crie o script que processará eventos da fila. Nesse caso, usaremos o SDK do Python 3.

Criar um arquivo chamado 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)

Em seguida, invoque isso com as informações para a fila criada acima:

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

Isso extrairá eventos da fila e imprimirá seu conteúdo. O processo é executado até que seja encerrado manualmente.

Observação

Há muito mais propriedades em eventos. Consulte a página Eventos para obter mais informações.