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

來源: 51CTO
作者:wuyvzhang
時(shí)間:2021-04-12
17028
在使用Azure的過程中,我們可以將Tags應(yīng)用于Azure資源,從而可以將元數(shù)據(jù)邏輯的組織到某些分類中。每個(gè)Tags由名稱和值組成。例如,我們可以將名稱“Environment”和值“Production”應(yīng)用于生產(chǎn)中的所有資源。

photo-1531053270060-6643c8e70e8f.JPG

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

應(yīng)用Tags以后,我們可以使用該Tags名稱和值檢索訂閱中的所有資源。使用Tags可以從不同的資源組中檢索相關(guān)資源。當(dāng)我們需要組織用于計(jì)費(fèi)或管理的資源時(shí),此方法很有用。

需要注意的是當(dāng)我們使用TagsTags資源的時(shí)候是有如下限制的:

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

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

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

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

  • 應(yīng)用于資源組的Tags不會由該資源組中的資源繼承。

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

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

要將Tags應(yīng)用于資源,用戶必須具有對該資源類型的寫入權(quán)限。要將Tags應(yīng)用于所有資源類型,請使用Contributor角色。要僅將Tags應(yīng)用于一種資源類型,請使用該資源的Contributor角色。

說了這么多,下面我們就一起來看下如何使用Powershell批量為資源組下的所有資源添加Tags:

    #Login to Azure    
    Login-AzureRmAccount -Environment AzureChinaCloud
    #獲取資源組名稱(可單個(gè)也可所有)
    $Resources = Get-AzureRmResource -ResourceGroupName “ResourceGroupName”
    #對于每個(gè)資源,應(yīng)用資源組的標(biāo)記
    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 "將下列標(biāo)簽應(yīng)用到: $($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標(biāo)簽中添加到哈希表中" $resourcetag
    Write-Output "------------------------------------------------"
    $RGTagFinal.Add($resourcetag.Key,$resourcetag.Value)
    }
    }
    Write-Output "---------------------------------------------"
    Write-Output "將下列標(biāo)簽應(yīng)用到:$($resourceid)" $RGTagFinal
    Write-Output "---------------------------------------------"
    $Settag = Set-AzureRmResource -ResourceId $resourceid -Tag $RGTagFinal -Force
    }
    }
立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于51CTO,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
隨著人工智能技術(shù)持續(xù)重塑企業(yè)運(yùn)營方式,企業(yè)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實(shí)時(shí)洞察,同時(shí)幫助他們應(yīng)對跨IT和OT環(huán)境(包括云端、邊緣和本地)中運(yùn)營、應(yīng)用、數(shù)據(jù)和基礎(chǔ)設(shè)施的協(xié)作難題。
Azure
微軟云
云服務(wù)
2024-12-172024-12-17
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
.NET 9現(xiàn)已正式發(fā)布,它為.NET平臺的發(fā)展掀開了嶄新的一頁,突破了性能、云原生開發(fā)和AI技術(shù)集成的邊界。
Azure
微軟云
云服務(wù)
2024-12-162024-12-16
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
智能Microsoft Copilot副駕駛for Azure網(wǎng)絡(luò)服務(wù)現(xiàn)已推出公共預(yù)覽版。
Azure
微軟云
云服務(wù)
2024-12-102024-12-10
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺加速應(yīng)用創(chuàng)新
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺加速應(yīng)用創(chuàng)新
一年前,我們正式推出了一款端到端數(shù)據(jù)平臺,旨在幫助組織推動(dòng)人工智能轉(zhuǎn)型,并重新定義數(shù)據(jù)的連接、管理和分析方式。
Azure
微軟云
云服務(wù)
2024-12-092024-12-09
優(yōu)質(zhì)服務(wù)商推薦
更多