Event Grid'i kullanma
CycleCloud, küme ve düğüm olaylarını Azure Event Grid gönderebilir. Event Grid bir üreticiden gelen olayları kabul eder (bu örnekte CycleCloud) ve bunları bir veya daha fazla hedefe yönlendirir. Bu belgede azure depolama kuyruklarını hedef olarak kullanacağız.
İlk olarak, Event Grid hızlı başlangıcında açıklandığı gibi özel bir Event Grid konusu ve aboneliği oluşturun.
İkinci olarak, Yukarıda oluşturulan Event Grid konusuna yayımlamak için CycleCloud'u yapılandırın. Sol üstteki Ayarlar dişli simgesine tıklayın ve ardından listedeki CycleCloud öğesine çift tıklayın. Açılan listeden Event Grid konusunu seçin ve Kaydet'e tıklayın.
Üçüncüsü, kümeye bir düğüm ekleyin. Bu işlem hemen iki olay oluşturur: bir Microsoft.CycleCloud.ClusterSizeIncreased
olay ve bir Microsoft.CycleCloud.NodeAdded
olay.
Son olarak, kuyruktan olayları işleyecek betiği oluşturun. Bu durumda Python 3 SDK'sını kullanacağız.
adlı get_messages.py
bir dosya oluşturun:
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)
Ardından bunu yukarıda oluşturulan kuyruğun bilgileriyle çağırın:
python3 get_messages.py "DefaultEndpointsProtocol=https;AccountName=ACCOUNTNAME;AccountKey=ACCOUNTKEY;EndpointSuffix=core.windows.net" QUEUE_NAME
Bu işlem kuyruktan olayları çeker ve içeriğini yazdırır. İşlem el ile sona erene kadar çalışır.
Not
Olaylarla ilgili daha birçok özellik vardır. Daha fazla bilgi için Olaylar sayfasına bakın.