Share via


使用排程事件

從 8.2.2 開始,CycleCloud 可以利用 VM 的排程事件 。 這項功能可讓您將腳本放在 VM 上,當其中一個支援的事件發生時會自動執行。

發生事件時叫用腳本

節點上的 Jetpack 代理程式會自動接聽事件。 發生時,它會在 Linux 上的腳本目錄中 /opt/cycle/jetpack/scripts (, C:\cycle\jetpack\scripts 在 Windows) 上尋找名為 的腳本,以符合 事件。 如果找到腳本,則會執行腳本並延遲事件,直到腳本成功 (或事件逾時經過,Azure 會排程事件) 。 腳本成功結束之後,事件就會認可至 Azure,讓基礎動作 (例如重新開機) 可以立即發生。

注意

啟用監視時,CycleCloud 不會自動認可沒有腳本的事件,以確保重新開機之類的事件不會不必要的延遲。 如果您有另一個已經監視事件的自訂程式,則可以停用事件監視。 請注意,這表示 CycleCloud 不會收到 現成收回的通知

排程事件監視預設為開啟狀態,但可以在節點或 nodearray 上設定下列專案來停用:

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

在版本 8 中新增的已淘汰設定 cyclecloud.monitor_spot_eviction 現在表示與 cyclecloud.monitor_scheduled_events 相同。

支援的事件

事件 描述 Linux 腳本 Windows 指令碼
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 為 nodearray 上的 true。 這會針對為此 nodearray 建立的擴展集啟用它。 若要覆寫允許的逾時,您可以將 設定 TerminateNotificationTimeout 為新的時間。 例如,在叢集範本中:

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

若未 EnableTerminateNotification 設定為 true,擴展集 VM 將不會取得 Terminate 事件。