在使用Azure的过程中,我们可以将标签应用于Azure资源,从而可以将元数据逻辑的组织到某些分类中。每个标签由名称和值组成,例如,我们可以将名称“环境”和值“生产”应用于生产中的所有资源。
应用标签以后,我们可以使用该标签名称和值检索订阅中的所有资源。使用标签可以从不同的资源组中检索相关资源。当我们需要组织用于计费或管理的资源时,此方法很有用。
需要注意的是当我们使用TagsTags资源的时候是有如下限制的:
- <李>
并非所有资源类型都支持标签。
李> <李>每个资源或资源组最多可以有15个标签名称/值对。此限制仅适用于直接应用于资源组或资源的标记。一个资源组可以包含许多资源,每个资源有15个标签名称/值对。如果您需要与资源关联的值超过15个,则使用JSON字符串作为标签值. JSON字符串可以包含应用于单个标签名称的许多值。本文展示了一个为标签分配JSON字符串的示例。
李> <李>标记名称限制为512个字符,标签值限制为256个字符。对于存储帐户,标签名称限制为128个字符,标签值限制为256个字符。
李> <李>对于所有标签名称和值,虚拟机的总数限制为2048个字符。
李> <李>应用于资源组的标签不会由该资源组中的资源继承。
李> <李>标记不能应用于云服务等传统资源。
李> <李>标签名称不能包含这些字符:& lt;祝辞,%,,,\,?李,/
>要将标签应用于资源,用户必须具有对该资源类型的写入权限。要将标签应用于所有资源类型,请使用贡献者角色。要仅将标签应用于一种资源类型,请使用该资源的贡献者角色。
说了这么多,下面我们就一起来看下如何使用Powershell批量为资源组下的所有资源添加标签:
,,,,# Login 用Azure ,,, ,,,Login-AzureRmAccount -Environment AzureChinaCloud ,,,#获取资源组名称(可单个也可所有) ,,,Resources 美元;=,Get-AzureRmResource -ResourceGroupName “ResourceGroupName” ,,,#对于每个资源,应用资源组的标记 ,,,Foreach (resource 美元;拷贝资源美元) ,,,{ ,,,Rgname 美元;=,resource.Resourcegroupname美元 ,,,resourceid 美元;=,resource.resourceId美元 ,,,RGTags 美元;=,(Get-AzureRmResourceGroup -Name  Rgname美元).Tags ,,,resourcetags 美元;=,resource.Tags美元 ,,,If (resourcetags 美元;-eq 零美元) ,,,{ ,,,Write-Output “- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -产生绯闻; ,,,Write-Output “将下列标签应用到:,美元($ resourceid)“RGTags美元 ,,,Write-Output “- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -产生绯闻; ,,,Settag 美元;=,Set-AzureRmResource -ResourceId resourceid 美元;-Tag RGTagS 美元;force ,,,} ,,, ,,,{ ,,,RGTagFinal 美元;=,@ {} ,,,RGTagFinal 美元;=,RGTags美元 ,,,Foreach (resourcetag 美元;拷贝resourcetags.GetEnumerator美元()) ,,,{ ,,,If (RGTags.Keys 美元;-inotcontains  resourcetag.Key美元) ,,,{ ,,,Write-Output “- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -“ ,,,Write-Output “键不存在于RG标签中添加到哈希表中“resourcetag美元 ,,,Write-Output “- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -“ ,,,美元RGTagFinal.Add (resourcetag.Key, resourcetag.Value美元) ,,,} ,,,} ,,,Write-Output “- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -产生绯闻; ,,,Write-Output “将下列标签应用到:美元($ resourceid)“RGTagFinal美元 ,,,Write-Output “- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -产生绯闻; ,,,Settag 美元;=,Set-AzureRmResource -ResourceId resourceid 美元;-Tag RGTagFinal 美元;force ,,,} ,,,}