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.
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.