Заменить один тег из разных ресурсов в группе ресурсов Azure - PullRequest
0 голосов
/ 03 февраля 2020

Я хочу заменить одно значение тега на всех ресурсах в одной группе ресурсов. Значение, которое следует изменить, поступает из группы ресурсов.

$rgname = "cldazcs...." 
$rg = Get-AzResourceGroup -Name $rgName
$rgTagsAll = $rg.Tags
$rgTagDedicated = $rg.tags.Responsible
$rgTagDedicated

$rgTags
$rgTags.Remove("RG_Description")
$resources = Get-AzResource -ResourceGroupName $rgName

$resources
Write-Output ""
Write-Output "=== The following Tags will be applied ==="
Write-Output $rgTagsAll
Write-Output "Dedicated:"$rgTagDedicated

foreach ( $resource in $ressources ) {
    Write-Output "=== Update the following Ressource"
    Write-Output $resource.Name
    Set-AzResource -ResourceId $resource.Id -Tag @{Responsible="$rgTagsDedicated"} -Force
}

После запуска сценария значение Tag Responsible во всех ресурсах пустое.

1 Ответ

1 голос
/ 04 февраля 2020

Согласно моему тесту, мы можем использовать следующий скрипт для обновления тега ресурса

Connect-AzAccount
$rgname = "jimgroup" 
$rg = Get-AzResourceGroup -Name $rgName
$rgTagsAll = $rg.Tags
$rgTagDedicated = $rg.Tags.created_by
$rgTagDedicated


$resources = Get-AzResource -ResourceGroupName $rgName
foreach($resource in $resources){
   #check if the resouce has the tag
  if($resource.tags.ContainsKey("created_by")){
    #change the tag value
    $resource.tags.created_by=$rgTagDedicated
    Set-AzResource -ResourceId $resource.Id -Tag $resource.tags -Force
  }else{
    #add the tag
    $resource.tags.add("created_by",$rgTagDedicated)

    Set-AzResource -ResourceId $resource.Id -Tag $resource.tags -Force
  }


}

$resources = Get-AzResource -ResourceGroupName $rgName
$resources[0].Tags

enter image description here

...