首页 > 网络 > 云计算 >

使用Powershell批量为Azure资源添加Tags教程

2019-01-28

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

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

应用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:

#LogintoAzure
Login-AzureRmAccount-EnvironmentAzureChinaCloud
#获取资源组名称(可单个也可所有)
$Resources=Get-AzureRmResource-ResourceGroupName“ResourceGroupName”
#对于每个资源,应用资源组的标记
Foreach($resourcein$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($resourcetagin$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
}
}

    相关文章
    最新文章
    热点推荐