溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Powershell批量為Azure資源添加Tags

發(fā)布時間:2020-04-11 04:30:52 來源:網(wǎng)絡 閱讀:1236 作者:wuyvzhang 欄目:云計算


在使用Azure的過程中,我們可以將Tags應用于Azure資源,從而可以將元數(shù)據(jù)邏輯的組織到某些分類中。每個Tags由名稱和值組成。例如,我們可以將名稱“Environment”和值“Production”應用于生產中的所有資源。

應用Tags以后,我們可以使用該Tags名稱和值檢索訂閱中的所有資源。使用Tags可以從不同的資源組中檢索相關資源。當我們需要組織用于計費或管理的資源時,此方法很有用。

需要注意的是當我們使用TagsTags資源的時候是有如下限制的:

  • 并非所有資源類型都支持Tags。

  • 每個資源或資源組最多可以有15個Tags名稱/值對。此限制僅適用于直接應用于資源組或資源的Tags。一個資源組可以包含許多資源,每個資源有15個Tags名稱/值對。如果您需要與資源關聯(lián)的值超過15個,則使用JSON字符串作為Tags值。JSON字符串可以包含應用于單個Tags名稱的許多值。本文展示了一個為Tags分配JSON字符串的示例。

  • Tags名稱限制為512個字符,Tags值限制為256個字符。對于存儲帳戶,Tags名稱限制為128個字符,Tags值限制為256個字符。

  • 對于所有Tags名稱和值,虛擬機的總數(shù)限制為2048個字符。

  • 應用于資源組的Tags不會由該資源組中的資源繼承。

  • Tags不能應用于云服務等傳統(tǒng)資源。

  • 標簽名稱不能包含這些字符:<,>,%,&,\,?,/

要將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
    }
    }


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI