使用Powershell批量为Azure资源添加标签

  


在使用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   ,,,}   ,,,}


使用Powershell批量为Azure资源添加标签