使用Powershell批量为Azure资源添加Tags-创新互联

在使用Azure的过程中,我们可以将Tags应用于Azure资源,从而可以将元数据逻辑的组织到某些分类中。每个Tags由名称和值组成。例如,我们可以将名称“Environment”和值“Production”应用于生产中的所有资源。

创新互联建站自2013年起,公司自成立以来始终致力于为企业提供官网建设、移动互联网业务开发(小程序设计、手机网站建设、app软件定制开发等),并且包含互联网基础服务(域名、主机服务、企业邮箱、网络营销等)应用服务;以先进完善的建站体系及不断开拓创新的精神理念,帮助企业客户实现互联网业务,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞誉。

应用Tags以后,我们可以使用该Tags名称和值检索订阅中的所有资源。使用Tags可以从不同的资源组中检索相关资源。当我们需要组织用于计费或管理的资源时,此方法很有用。

需要注意的是当我们使用TagsTags资源的时候是有如下限制的:

  • 并非所有资源类型都支持Tags。

  • 每个资源或资源组最多可以有15个Tags名称/值对。此限制仅适用于直接应用于资源组或资源的Tags。一个资源组可以包含许多资源,每个资源有15个Tags名称/值对。如果您需要与资源关联的值超过15个,则使用JSON字符串作为Tags值。JSON字符串可以包含应用于单个Tags名称的许多值。本文展示了一个为Tags分配JSON字符串的示例。

  • Tags名称限制为512个字符,Tags值限制为256个字符。对于存储帐户,Tags名称限制为128个字符,Tags值限制为256个字符。

  • 对于所有Tags名称和值,虚拟机的总数限制为2048个字符。

  • 应用于资源组的Tags不会由该资源组中的资源继承。

  • Tags不能应用于云服务等传统资源。

  • 标签名称不能包含这些字符:<,>,%,&,\,?,/

要将Tags应用于资源,用户必须具有对该资源类型的写入权限。要将Tags应用于所有资源类型,请使用Contributor角色。要仅将Tags应用于一种资源类型,请使用该资源的Contributor角色。

说了这么多,下面我们就一起来看下如何使用Powershell批量为资源组下的所有资源添加Tags:

    #Login to Azure         Login-AzureRmAccount -Environment AzureChinaCloud     #获取资源组名称(可单个也可所有)     $Resources = Get-AzureRmResource -ResourceGroupName “ResourceGroupName”     #对于每个资源,应用资源组的标记     Foreach ($resource in $Resources)     {     $Rgname = $resource.Resourcegroupname     $resourceid = $resource.resourceId     $RGTags = (Get-AzureRmResourceGroup -Name $Rgname).Tags     $resourcetags = $resource.Tags     If ($resourcetags -eq $null)     {     Write-Output "---------------------------------------------"     Write-Output "将下列标签应用到: $($resourceid)" $RGTags     Write-Output "---------------------------------------------"     $Settag = Set-AzureRmResource -ResourceId $resourceid -Tag $RGTagS -Force     }     Else     {     $RGTagFinal = @{}     $RGTagFinal = $RGTags     Foreach ($resourcetag in $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     }     }

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:使用Powershell批量为Azure资源添加Tags-创新互联
链接分享:http://scyanting.com/article/dghoch.html