Azure 资源标记
Azure Resource Tagging
我正在寻找一种方法来创建一个标签并使用它来标记多个资源。我标记的这些资源并不都在同一个资源组/订阅中,它们都是不同类型的资源,从 VM 到应用服务再到 Log Analytics 工作区等。总共有 3000 多个资源。最终目标是为每种资源类型创建一个标签,然后使用 powershell 按资源类型进行过滤,然后向每种资源类型发送特定的命令。下面是一个例子。
VM 资源将获得 VM-Cleanup-Tag,然后我将 运行 一个命令,将该标签添加到我指定的所有 VM 资源。然后我将 运行 一个命令来按该标记进行过滤,并在其中传输另一个命令,例如 stop-AzureVM。然后我将为许多其他资源类型做同样的事情。任何想法将不胜感激!
只需为此目的使用通用 AzResource 命令
$tags = @{"VM-Cleanup-Tag"="True" ; "ResoucreType" = "VM" ; "etc"="etc"}
Get-AzResource -ResourceType Microsoft.Compute/virtualMachines | Set-AzResource -Tag $tags -Force
然后你可以调用这些资源
$VMs_Cleanup = Get-AzResource -Tag @{"VM-Cleanup-Tag" = "True"}
$VMs_Cleanup | Stop-AzVM
或
foreach ($VM in $VMs_Cleanup) {
Stop-AzVM $VM
blah blah
}
获取标签并附加新标签
$tags = @{"VM-Cleanup-Tag"="True" ; "ResoucreType" = "VM" ; "etc"="etc"}
$Resource = Get-AzResource -Name $VMName
$tags.Keys | % {$Resource.Tags.Add($_,$tags.Item($_))}
Set-AzResource $VMName
我正在寻找一种方法来创建一个标签并使用它来标记多个资源。我标记的这些资源并不都在同一个资源组/订阅中,它们都是不同类型的资源,从 VM 到应用服务再到 Log Analytics 工作区等。总共有 3000 多个资源。最终目标是为每种资源类型创建一个标签,然后使用 powershell 按资源类型进行过滤,然后向每种资源类型发送特定的命令。下面是一个例子。
VM 资源将获得 VM-Cleanup-Tag,然后我将 运行 一个命令,将该标签添加到我指定的所有 VM 资源。然后我将 运行 一个命令来按该标记进行过滤,并在其中传输另一个命令,例如 stop-AzureVM。然后我将为许多其他资源类型做同样的事情。任何想法将不胜感激!
只需为此目的使用通用 AzResource 命令
$tags = @{"VM-Cleanup-Tag"="True" ; "ResoucreType" = "VM" ; "etc"="etc"}
Get-AzResource -ResourceType Microsoft.Compute/virtualMachines | Set-AzResource -Tag $tags -Force
然后你可以调用这些资源
$VMs_Cleanup = Get-AzResource -Tag @{"VM-Cleanup-Tag" = "True"}
$VMs_Cleanup | Stop-AzVM
或
foreach ($VM in $VMs_Cleanup) {
Stop-AzVM $VM
blah blah
}
获取标签并附加新标签
$tags = @{"VM-Cleanup-Tag"="True" ; "ResoucreType" = "VM" ; "etc"="etc"}
$Resource = Get-AzResource -Name $VMName
$tags.Keys | % {$Resource.Tags.Add($_,$tags.Item($_))}
Set-AzResource $VMName