如何根据订阅、区域和另一个标签批量更新 Azure 中的特定标签?

How to bulk update a particular Tag in Azure on the basis of Subscription, Region and another tag?

我需要批量更新应用于 Azure 中各种资源(如 VM、NSG、AGW、RG 等)的特定标记。我需要为应用它们的所有类型的资源更新此标签。我该怎么做?我需要根据订阅、区域和另一个标签值过滤资源吗?我可以使用 AZ CLI 或 Azure Powershell 吗?如果可以,如何使用?如何为批量标签更新放置订阅、区域和另一个标签值的过滤器?

您可以使用 Azure PowerShell:

$mergedTags = @{"key1"="value1"; "key3"="value3";}
Update-AzTag -ResourceId /subscriptions/{subId} -Tag $mergedTags -Operation Merge

原始文档:https://docs.microsoft.com/en-us/powershell/module/az.resources/update-aztag?view=azps-5.3.0

或 Az Cli: https://docs.microsoft.com/en-us/cli/azure/tag?view=azure-cli-latest

要使用订阅进行过滤,您需要使用 Set-AzContext to set the specific subscription, because azure powershell can just run against one subscription, to see the subscriptions that your logged account can access, you could use Get-AzSubscription

然后你可以用区域和另一个标签值进行过滤,得到他们之后,通过Update-AzTag更新他们的标签。

Connect-AzAccount
Set-AzContext -Subscription "<subscription-id>"
$resources = Get-AzResource -TagName "tag1" -TagValue "value1" | Where-Object {$_.Location -eq 'centralus'}
$Tags = @{"tag1"="value1"; "tag2"="value2";}
$resources | ForEach-Object {
    Update-AzTag -ResourceId $_.ResourceId -Tag $Tags -Operation Merge
}