You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure虚拟机自动启停高性价比方案咨询(月成本≤5美元)

Azure虚拟机自动启停低成本最佳实践

针对你的需求(替代手动CLI命令启动VM、月成本≤5美元、避免Defender for Cloud额外收费),以下是几个实用方案:

方案1:利用现有廉价VM的定时任务(0额外成本)

因为你已经有一台持续运行的廉价VM(视为免费),直接在这台VM上配置定时任务是最省钱的方式:

Linux VM 配置步骤:

  1. 确保VM上已安装Azure CLI,若未安装可执行:
    curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
    
  2. 创建服务主体用于无交互认证(避免手动登录过期):
    az ad sp create-for-rbac --name vm-start-sp --role "Virtual Machine Contributor" --scopes /subscriptions/<你的订阅ID>/resourceGroups/foo
    
    记录输出的appId(AZURE_CLIENT_ID)、password(AZURE_CLIENT_SECRET)、tenant(AZURE_TENANT_ID)。
  3. 在VM上设置环境变量(可写入~/.bashrc或/etc/profile持久化):
    export AZURE_CLIENT_ID="你的appId"
    export AZURE_CLIENT_SECRET="你的password"
    export AZURE_TENANT_ID="你的tenant"
    
  4. 编辑crontab添加定时任务,比如每天早上8点启动VM:
    crontab -e
    
    添加一行:
    0 8 * * * /usr/bin/az vm start -g foo -n bar >> /var/log/vm-start.log 2>&1
    

Windows VM 配置步骤:

  1. 安装Azure CLI,下载对应安装包完成部署。
  2. 同样创建服务主体,记录认证信息。
  3. 创建PowerShell脚本Start-VM.ps1:
    $env:AZURE_CLIENT_ID = "你的appId"
    $env:AZURE_CLIENT_SECRET = "你的password"
    $env:AZURE_TENANT_ID = "你的tenant"
    az vm start -g foo -n bar
    
  4. 打开「任务计划程序」,创建基本任务:
    • 设置触发时间(如每天8点)
    • 操作选择「启动程序」,程序/脚本选powershell.exe,参数填-ExecutionPolicy Bypass -File "C:\路径\Start-VM.ps1"

方案2:Azure Logic Apps(消耗计划,几乎0成本)

Logic Apps消耗计划按执行次数收费,每月前1000次执行免费,完全覆盖你的需求:

  1. 登录Azure门户,创建「逻辑应用(消耗)」。
  2. 添加「定时触发器」,设置启动VM的时间规则(如每天8点)。
  3. 添加「Azure 虚拟机 - 启动虚拟机」操作,选择订阅、资源组foo和VMbar。
  4. 配置权限:逻辑应用会自动创建服务主体,确保其拥有Virtual Machine Contributor权限(若权限不足,可手动在资源组IAM中添加)。
  5. 成本说明:即使每天执行2次,每月仅60次,远在免费额度内;若超出,每次执行仅0.00016美元,月成本不会超过5美元。

方案3:Azure Automation Runbook(免费层足够)

Azure Automation提供免费层(每月500分钟作业运行时间),完全满足定时启动VM的需求,关键是创建时要关闭Defender:

  1. 创建Automation账户时,取消勾选「启用Microsoft Defender for Cloud」,避免额外收费。
  2. 在Automation账户中导入Az.Compute模块(用于VM操作)。
  3. 创建PowerShell Runbook,内容如下:
    Connect-AzAccount -Identity # 使用Automation账户的托管身份认证
    Start-AzVM -ResourceGroupName "foo" -Name "bar"
    
  4. 给Automation账户的托管身份添加Virtual Machine Contributor权限到资源组foo。
  5. 创建计划,设置定时触发Runbook(如每天8点)。
  6. 成本说明:免费层500分钟/月足够用,即使超出,每分钟仅0.002美元,月成本远低于5美元。

方案对比

方案成本优点缺点
现有VM定时任务0额外成本操作简单,无需额外资源依赖廉价VM的可用性
Logic Apps(消耗)几乎0成本可视化配置,无需维护VM功能相对单一
Automation Runbook免费层足够功能丰富,可扩展自动化需手动关闭Defender配置

注意事项

  • 所有方案使用的身份(服务主体/托管身份)仅需Virtual Machine Contributor权限,遵循最小权限原则。
  • 定期测试自动化任务,确保VM能正常启动。
  • 对于Logic Apps和Automation,可在Azure成本管理中监控使用情况,避免意外收费。

内容的提问来源于stack exchange,提问作者gotShwifty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:12:49