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

如何修改Azure Runbook代码自动获取所在资源组名称

修改Azure Runbook实现自动获取自身所在资源组

要让Runbook自动获取自身所在的资源组名称,你可以按以下方式修改代码:

  1. 动态获取资源组名称:Runbook属于Azure自动化账户,而自动化账户本身归属于某个资源组。我们可以利用Runbook运行时的系统环境变量AUTOMATION_ACCOUNT_NAME拿到自动化账户名称,再通过这个名称查询对应的资源组。
  2. 替换硬编码内容:把原代码中所有硬编码的RG-TEST替换为动态获取的资源组变量。

修改后的完整代码如下:

# 获取当前Runbook所属自动化账户的资源组名称
$automationAccountName = $env:AUTOMATION_ACCOUNT_NAME
$automationAccount = Get-AzAutomationAccount -Name $automationAccountName
$resourceGroupName = $automationAccount.ResourceGroupName

# 获取目标资源组下的所有VM
$vms = Get-AzVM -ResourceGroupName $resourceGroupName
foreach($vm in $vms)
{
   # 检查VM状态
   $statuscheck = Get-AzVM -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name -Status 
    if($statuscheck.Statuses.DisplayStatus[1] -eq "VM running")
    {  
        Write-Output "Stopping virtual machine...$($vm.Name)"
        Stop-AzVM -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name -Force
    }   
    else
    {
        Write-Output "Virtual machine $($vm.Name) is already in stopped state"
    }
}

注意事项

  • 确保Runbook的执行账户拥有Automation Account Reader权限(用于获取自动化账户信息)以及Virtual Machine Contributor权限(用于管理VM)。
  • AUTOMATION_ACCOUNT_NAME是Runbook运行时自动生成的系统环境变量,无需手动配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:35:29