你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用计划事件

从 8.2.2 起,CycleCloud 可以利用 VM 的计划 事件 。 借助此功能,可以将脚本放在 VM 上,该脚本将在其中一个受支持的事件发生时自动执行。

事件发生时调用脚本

节点上的 Jetpack 代理会自动侦听事件。 出现这种情况时,它会在 Linux C:\cycle\jetpack\scripts 上的脚本目录 (/opt/cycle/jetpack/scripts、Windows) 上查找一个名为与事件匹配的脚本。 如果找到脚本,它会执行该脚本并延迟事件,直到脚本成功 (或事件超时已过,Azure 将计划事件) 。 成功退出脚本后,事件会确认到 Azure,以便基础操作 (例如,可以立即重启) 。

注意

启用监视时,CycleCloud 不会自动确认没有脚本的事件,以确保不必要地延迟重新启动等事件。 如果你有另一个已监视事件的自定义进程,则可以禁用事件监视。 请注意,这意味着 CycleCloud 不会收到 现成逐出通知

默认情况下,计划事件监视处于启用状态,但可以通过在节点或 nodearray 上设置以下内容来禁用它:

[[[configuration]]]
cyclecloud.monitor_scheduled_events = false

在版本 8 中添加的已弃用设置 cyclecloud.monitor_spot_eviction现在与 cyclecloud.monitor_scheduled_events版本 8 相同。

支持的事件

事件 说明 Linux 脚本 Windows Script
Preempt 现成 VM 正在被逐出 onPreempt.sh onPreempt.bat
Terminate VM 计划 (可选) 删除 onTerminate.sh onTerminate.bat
重新启动 VM 计划重新启动 onReboot.sh onReboot.bat
重新部署 VM 计划移动到另一台主机 onRedeploy.sh onRedeploy.bat
冻结 VM 计划暂停几秒钟 onFreeze.sh onFreeze.bat

终止通知

CycleCloud 支持在规模集 VM 上启用 终止通知 (,例如执行节点) 。 为此,请将节点数组设置为 EnableTerminateNotification true。 这将为为此 nodearray 创建的规模集启用它。 若要替代允许的超时,可以设置为 TerminateNotificationTimeout 新时间。 例如,在群集模板中:

[[nodearray execute]]
EnableTerminateNotification = true
TerminateNotificationTimeout = 10

如果没有 EnableTerminateNotification 设置为 true,规模集 VM 将不会获取 Terminate 事件。