有没有办法在两小时后停止 Azure 虚拟机?

Is there a Way to stop an Azure virtual Machine after two hours?

我已经编写了一个 PowerShell 脚本,它通过对 Azure 自动化的 POST 请求启动 Azure 虚拟机。出于成本原因,这些机器应该会在两小时后自动停止。

有没有 Way/Function 可以轻松做到这一点?

根据您的要求,您需要自己计算 VM 运行ning 的持续时间。可以获取VM在运行ning时间最后一次启动时间的事件时间。现在是 UTC 时间。然后自己计算到现在为止的持续时间。这是获取事件时间的 Azure CLI 命令:

az vm get-instance-view -g yourResourceGroup -n yourVM --query instanceView.statuses

结果截图在这里:

或者您可以过滤 activity 日志以获取上次事件的 "Start Virtual Machine" 时间。下面是 Azure CLI 命令:

az monitor activity-log list --resource-id yourVM_resourceId --query "[?operationName.localizedValue == 'Start Virtual Machine'].eventTimestamp" --max-events 1

我觉得应该是一个间隔查询任务,持续两个小时就可以了。在我看来,它应该在启动VM的脚本中运行。