Использование Службы "Сетка событий"
CycleCloud может отправлять события кластера и узла в Сетка событий Azure. Сетка событий принимает события от производителя (в данном случае CycleCloud) и направляет их в одно или несколько назначений. В этом документе мы будем использовать очереди службы хранилища Azure в качестве назначения.
Сначала создайте пользовательский раздел и подписку Сетки событий, как описано в кратком руководстве по сетке событий.
Во-вторых, настройте CycleCloud для публикации в созданном выше разделе Сетки событий. Щелкните значок шестеренки Параметры в левом верхнем углу, а затем дважды щелкните элемент CycleCloud в списке. Выберите раздел Сетка событий в раскрывающемся списке и нажмите кнопку Сохранить.
В-третьих, добавьте узел в кластер. Это приведет к немедленному созданию Microsoft.CycleCloud.ClusterSizeIncreased
двух событий: события и Microsoft.CycleCloud.NodeAdded
события.
Наконец, создайте скрипт, который будет обрабатывать события из очереди. В этом случае мы будем использовать пакет SDK для Python 3.
Создайте файл 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)
Затем вызовите этот код со сведениями для очереди, созданной ранее:
python3 get_messages.py "DefaultEndpointsProtocol=https;AccountName=ACCOUNTNAME;AccountKey=ACCOUNTKEY;EndpointSuffix=core.windows.net" QUEUE_NAME
Это приведет к извлечению событий из очереди и выводу их содержимого. Процесс выполняется до завершения вручную.
Примечание
В событиях есть еще много свойств. Дополнительные сведения см. на странице События .