你如何同时更新许多天蓝色标签?
Posted
技术标签:
【中文标题】你如何同时更新许多天蓝色标签?【英文标题】:How do you update many azure tags simultaneously? 【发布时间】:2022-01-17 07:54:13 【问题描述】:我似乎能够找到单独更新每个资源标签的解决方案。但我不知道如何同时做很多标签。帮忙?
-
Update-aztag
Rest API
【问题讨论】:
你看到这篇文章了吗? ***.com/questions/57929322/… 或 ***.com/questions/57962737/… 这些帖子指向通过 for 循环的迭代,以将标签应用于每个资源。我正在寻找将它们同时应用于多个资源的修复程序。 【参考方案1】:带有 ResourceId 的 Update-AzTag
cmdlet 选择性地更新资源或订阅上的标签集。此操作允许替换、合并或有选择地删除指定资源或订阅上的标签。
1.如果您想要替换订阅中所有资源的标签,您可以使用以下 PowerShell 脚本。
connect-azaccount
$replacedTags= @"key1"="value1"; "key3"="value3"
$resourcelist= Get-AzResource
foreach($item in $resourcelist)
Update-Aztag -ResourceId $item.ResourceId -Tag $replacedTags -Operation Replace
这是示例输出供参考:
2.如果您想要替换特定标签,您可以参考下面的 PowerShell 脚本。
$replacedTags= @"key3"="value3"
$resourcelist= Get-AzResource
foreach($item in $resourcelist)
$existtags=(Get-AzTag -ResourceId $item.ResourceId)
if(($existtags.Properties.TagsProperty.Values -contains 'value1') -and ( $existtags.Properties.TagsProperty.Keys -contains 'key1'))
Update-Aztag -ResourceId $item.ResourceId -Tag $replacedTags -Operation Replace
这是示例输出供参考:
3.如果您想要合并特定标签,可以参考下面的 PowerShell 脚本。
$mergedTags=@"key2"="value2"; "key3"="value3"
$resourcelist= Get-AzResource
foreach($item in $resourcelist)
$existtags=(Get-AzTag -ResourceId $item.ResourceId)
if(($existtags.Properties.TagsProperty.Values -contains 'key1') -and ( $existtags.Properties.TagsProperty.Keys -contains 'value1'))
Update-AzTag -ResourceId $item.ResourceId -Tag $mergedTags -Operation Merge
这是供参考的示例输出:
【讨论】:
谢谢,但这些是用于选择性资源,问题是如何并行更新它们?我找到的每个解决方案都会导致每个资源的更新,这对于相对较大的租户来说需要很长时间。 如果您使用的是 Windows PowerShell 5.1,您希望并行执行任务,建议使用ForEach -Parallel
这应该在 Windows Powershell 工作流中构建。这是参考documentation 了解更多信息。我们已经在本地环境中对此进行了测试,运行良好这里是截图供参考i.stack.imgur.com/lvmQu.png
如果您使用的是 Powershell7,您可以使用Foreach-object -parallel
来并行执行作业,这里是参考文档。 devblogs.microsoft.com/powershell/…以上是关于你如何同时更新许多天蓝色标签?的主要内容,如果未能解决你的问题,请参考以下文章