スケジュールされたイベントの使用

8.2.2 の時点で、CycleCloud は VM の スケジュールされたイベント を利用できます。 この機能を使用すると、サポートされているイベントのいずれかが発生したときに自動的に実行されるスクリプトを VM に配置できます。

イベント発生時のスクリプトの呼び出し

ノード上の Jetpack エージェントは、イベントを自動的にリッスンします。 発生すると、イベントと一致するように名前が付けられたスクリプトが scripts ディレクトリ (/opt/cycle/jetpack/scriptsLinux、 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同じになります。

サポートされるイベント

Event 説明 Linux スクリプト Windows スクリプト
Preempt スポット VM が削除されています onPreempt.sh onPreempt.bat
Terminate VM が削除されるようにスケジュールされている (省略可能) onTerminate.sh onTerminate.bat
再起動 VM の再起動がスケジュールされている onReboot.sh onReboot.bat
Redeploy VM が別のホストに移動するようにスケジュールされている onRedeploy.sh onRedeploy.bat
Freeze VM は数秒間一時停止するようにスケジュールされています onFreeze.sh onFreeze.bat

終了通知

CycleCloud では、スケールセット VM (例: ノードの実行) で 終了通知 を有効にできます。 これを行うには、nodearray で true に設定 EnableTerminateNotification します。 これにより、この nodearray 用に作成されたスケールセットに対して有効になります。 許可されたタイムアウトをオーバーライドするには、新しい時刻を設定 TerminateNotificationTimeout できます。 たとえば、クラスター テンプレートでは次のようになります。

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

true に設定しないと EnableTerminateNotification 、スケールセット VM は Terminate イベントを受け取りません。