【问题标题】:Is there a Way to stop an Azure virtual Machine after two hours?有没有办法在两小时后停止 Azure 虚拟机?
【发布时间】:2020-01-06 08:31:26
【问题描述】:

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

有没有一种方法/功能可以轻松做到这一点?

【问题讨论】:

  • 也许this 是您要找的?
  • 你好 Theo,不,我需要一种方法来启动 Azure 中的计时器之类的东西,它会停止启动的 VM。所有人都应该在没有访问 VM 的情况下使用一个脚本。 (脚本应该适用于所有请求的机器)
  • 您可以使用 Azure 自动化解决方案 - 启动/停止 VM 解决方案。它支持我们安排凸轮启动或停止。更多详情请参考docs.microsoft.com/en-us/azure/automation/…
  • 您的要求是每日任务还是一次性任务?
  • 我的需求是一个任务,由网站或 PowerShell 脚本触发。

标签: powershell webhooks azure-virtual-machine azure-automation


【解决方案1】:

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

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

这里的结果截图:

或者您可以过滤活动日志以获取最后一个事件“启动虚拟机”的时间。下面是 Azure CLI 命令:

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

我认为它应该是一个间隔查询任务,根据需要持续两个小时。在我看来,它应该在启动 VM 的脚本中运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2022-11-25
    • 2022-11-02
    • 2014-12-12
    • 1970-01-01
    • 2017-04-16
    相关资源
    最近更新 更多