Stosowanie tagów za pomocą Azure PowerShell

W tym artykule opisano sposób używania Azure PowerShell do tagowania zasobów, grup zasobów i subskrypcji. Aby uzyskać zalecenia i ograniczenia dotyczące tagów, zobacz Organizowanie zasobów platformy Azure i hierarchii zarządzania przy użyciu tagów.

Stosowanie tagów

Azure PowerShell oferuje dwa polecenia do zastosowania tagów: New-AzTag i Update-AzTag. Musisz mieć Az.Resources moduł 1.12.0 lub nowszy. Możesz sprawdzić wersję za pomocą polecenia Get-InstalledModule -Name Az.Resources. Możesz zainstalować ten moduł lub zainstalować Azure PowerShell w wersji 3.6.1 lub nowszej.

Element New-AzTag zastępuje wszystkie tagi zasobu, grupy zasobów lub subskrypcji. Po wywołaniu polecenia przekaż identyfikator zasobu jednostki, którą chcesz otagować.

Poniższy przykład stosuje zestaw tagów do konta magazynu:

$tags = @{"Dept"="Finance"; "Status"="Normal"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
New-AzTag -ResourceId $resource.id -Tag $tags

Po zakończeniu polecenia zwróć uwagę, że zasób ma dwa tagi.

Properties :
        Name    Value
        ======  =======
        Dept    Finance
        Status  Normal

Jeśli ponownie uruchomisz polecenie, ale tym razem z różnymi tagami zwróć uwagę, że wcześniejsze tagi znikną.

$tags = @{"Team"="Compliance"; "Environment"="Production"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
New-AzTag -ResourceId $resource.id -Tag $tags
Properties :
        Name         Value
        ===========  ==========
        Environment  Production
        Team         Compliance

Aby dodać tagi do zasobu, który ma już tagi, użyj polecenia Update-AzTag. -Operation Ustaw parametr na Mergewartość .

$tags = @{"Dept"="Finance"; "Status"="Normal"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $tags -Operation Merge

Zwróć uwagę, że istniejące tagi rosną wraz z dodaniu dwóch nowych tagów.

Properties :
        Name         Value
        ===========  ==========
        Status       Normal
        Dept         Finance
        Team         Compliance
        Environment  Production

Każda nazwa tagu może mieć tylko jedną wartość. Jeśli podasz nową wartość dla tagu, zastąpi starą wartość, nawet jeśli używasz operacji scalania. Poniższy przykład zmienia Status tag z Normalny na Zielony.

$tags = @{"Status"="Green"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $tags -Operation Merge
Properties :
        Name         Value
        ===========  ==========
        Status       Green
        Dept         Finance
        Team         Compliance
        Environment  Production

Po ustawieniu parametru -Operation na Replacewartość nowy zestaw tagów zastępuje istniejące tagi.

$tags = @{"Project"="ECommerce"; "CostCenter"="00123"; "Team"="Web"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $tags -Operation Replace

Tylko nowe tagi pozostają w zasobie.

Properties :
        Name        Value
        ==========  =========
        CostCenter  00123
        Team        Web
        Project     ECommerce

Te same polecenia działają również z grupami zasobów lub subskrypcjami. Przekaż je w identyfikatorze grupy zasobów lub subskrypcji, którą chcesz otagować.

Aby dodać nowy zestaw tagów do grupy zasobów, użyj:

$tags = @{"Dept"="Finance"; "Status"="Normal"}
$resourceGroup = Get-AzResourceGroup -Name demoGroup
New-AzTag -ResourceId $resourceGroup.ResourceId -tag $tags

Aby zaktualizować tagi dla grupy zasobów, użyj:

$tags = @{"CostCenter"="00123"; "Environment"="Production"}
$resourceGroup = Get-AzResourceGroup -Name demoGroup
Update-AzTag -ResourceId $resourceGroup.ResourceId -Tag $tags -Operation Merge

Aby dodać nowy zestaw tagów do subskrypcji, użyj:

$tags = @{"CostCenter"="00123"; "Environment"="Dev"}
$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
New-AzTag -ResourceId "/subscriptions/$subscription" -Tag $tags

Aby zaktualizować tagi dla subskrypcji, użyj:

$tags = @{"Team"="Web Apps"}
$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
Update-AzTag -ResourceId "/subscriptions/$subscription" -Tag $tags -Operation Merge

Być może istnieje więcej niż jeden zasób o tej samej nazwie w grupie zasobów. W takim przypadku można ustawić każdy zasób przy użyciu następujących poleceń:

$resource = Get-AzResource -ResourceName sqlDatabase1 -ResourceGroupName examplegroup
$resource | ForEach-Object { Update-AzTag -Tag @{ "Dept"="IT"; "Environment"="Test" } -ResourceId $_.ResourceId -Operation Merge }

Tworzenie listy tagów

Aby pobrać tagi dla zasobu, grupy zasobów lub subskrypcji, użyj polecenia Get-AzTag i przekaż identyfikator zasobu jednostki.

Aby wyświetlić tagi zasobu, użyj:

$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Get-AzTag -ResourceId $resource.id

Aby wyświetlić tagi dla grupy zasobów, użyj:

$resourceGroup = Get-AzResourceGroup -Name demoGroup
Get-AzTag -ResourceId $resourceGroup.ResourceId

Aby wyświetlić tagi dla subskrypcji, użyj:

$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
Get-AzTag -ResourceId "/subscriptions/$subscription"

Wyświetlanie listy według tagów

Aby uzyskać zasoby, które mają określoną nazwę i wartość tagu, użyj:

(Get-AzResource -Tag @{ "CostCenter"="00123"}).Name

Aby uzyskać zasoby, które mają określoną nazwę tagu z dowolną wartością tagu, użyj:

(Get-AzResource -TagName "Dept").Name

Aby uzyskać grupy zasobów, które mają określoną nazwę i wartość tagu, użyj:

(Get-AzResourceGroup -Tag @{ "CostCenter"="00123" }).ResourceGroupName

Usuwanie tagów

Aby usunąć określone tagi, użyj polecenia Update-AzTag i ustaw wartość -OperationDelete. Przekaż identyfikatory zasobów tagów, które chcesz usunąć.

$removeTags = @{"Project"="ECommerce"; "Team"="Web"}
$resource = Get-AzResource -Name demostorage -ResourceGroup demoGroup
Update-AzTag -ResourceId $resource.id -Tag $removeTags -Operation Delete

Określone tagi są usuwane.

Properties :
        Name        Value
        ==========  =====
        CostCenter  00123

Aby usunąć wszystkie tagi, użyj polecenia Remove-AzTag .

$subscription = (Get-AzSubscription -SubscriptionName "Example Subscription").Id
Remove-AzTag -ResourceId "/subscriptions/$subscription"

Następne kroki