你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
CycleCloud 可以将群集和节点事件发送到 Azure 事件网格。 事件网格接受来自生成者(在本例中为 CycleCloud)的事件,并将其路由到一个或多个目标。 在本文中,我们将 Azure 存储队列 用作目标。
首先,按照事件网格快速入门中所述创建自定义事件网格主题和订阅。
其次,将 CycleCloud 配置为发布到事件网格主题。 选择左上角的 “设置” 齿轮图标,然后双击列表中的 CycleCloud 项。 从下拉列表中选择“事件网格”主题,然后选择“ 保存”。

第三,将节点添加到群集。 此步骤将立即生成两个事件:一个 Microsoft.CycleCloud.ClusterSizeIncreased 事件和一个 Microsoft.CycleCloud.NodeAdded 事件。
最后,创建处理队列中的事件的脚本。 在这种情况下,请使用 Python 3 SDK。
创建名为 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
此脚本从队列中提取事件并输出其内容。 进程将运行,直到你手动结束它。
注释
事件上还有更多属性。 有关详细信息,请参阅事件页。