Partilhar via


Utilizar o Event Grid

O CycleCloud pode enviar eventos de cluster e nó para Azure Event Grid. O Event Grid aceita eventos de um produtor (neste caso, o CycleCloud) e encaminha-os para um ou mais destinos. Neste documento, vamos utilizar as Filas de Armazenamento do Azure como destino.

Em primeiro lugar, crie um tópico e uma subscrição personalizados do Event Grid, conforme descrito no início rápido do Event Grid.

Em segundo lugar, configure o CycleCloud para publicar no tópico do Event Grid criado acima. Clique no ícone de engrenagem Definições no canto superior esquerdo e, em seguida, faça duplo clique no item CycleCloud na lista. Selecione o tópico Event Grid na lista pendente e clique em Guardar.

Escolher tópico do Event Grid

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

Por fim, crie o script que irá processar eventos a partir da fila. Neste caso, vamos utilizar o SDK Python 3.

Crie um ficheiro com o nome 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-o com as informações da fila criada acima:

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

Esta ação irá solicitar eventos da fila e imprimir os respetivos conteúdos. O processo é executado até terminar manualmente.

Nota

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