我有一个名为“RG1”的现有资源组,其标签为“creationDate”,“环境”的值为“15/05/2024”和“Dev”。 我想创建另一个名为“RG2”的资源组,其标签为“creationDate”,“环境”的值为“utc('d')”和“QA”。 创建“RG2”时,我不希望更改“RG1”的标签“creationDate”。如果有必要,我还希望更改“RG1”的标签“环境”。
总而言之,我想忽略特定标签的更改。在本例中,它是“RG1”上的标签“creationDate”。 我知道不可能忽视二头肌的变化。
我尝试使用部署脚本来完成此操作,因为使用二头肌中现有的关键字,我认为我们受到限制。
这受到以下启发:bicep:如何仅在资源不存在时有条件地部署资源
对我来说,我收到错误资源组未找到,因为就像我上面所说的那样,我想创建一个名为“RG2”的新资源组,并且在检查是否存在时,它失败了。有没有办法获得我可以使用的答案(空或类似的东西)并且不会使我的管道失败。
最后,如果您有其他想法,我很乐意。
谢谢
我想忽略特定标签的更改。在本例中,它是“RG1”上的标签“creationDate”。我知道不可能忽视二头肌的变化。
是的,正如您已经提到的,在二头肌中创建任何资源时不可能忽略特定的更改。在这个 GitHub 问题和 ARM 资源中,它返回了
GET
上的一个名为 systemData
的属性,其中包括 createdAt
,这在 GitHub 问题中也明确给出了。
而且,我在我的环境中尝试了与您相同的代码,我能够成功部署它并获得正确的输出,如下所示。这意味着您当前检查资源组是否存在的代码没有问题。
最后,如果您有其他想法,我很乐意。
如果您愿意接受其他想法,您可以使用以下 PowerShell 方法来检查资源组是否存在并详细更新
environment
标签。
$Rg1 = "caronew"
$Rg2 = "newresources"
$Location = "westeurope"
$resourcegroup1 = Get-AzResourceGroup -Name $Rg1
$resourcegroup1
#Get the tags from resourcegroup1
$Rg1Tags = $resourcegroup1.Tags
$Rg1Tags["environment"] = "QA" #Add the environment tag to the existing tags of Rg1
$Rg1Tags #Check if it is applied
Set-AzResourceGroup -Name $Rg1 -Tag $Rg1Tags #Update the environment to "QA"
try {
$resourcegroup2 = Get-AzResourceGroup -Name $Rg2 -ErrorAction Stop
Write-Output "$Rg2 already exists."
} catch {
New-AzResourceGroup -Name $Rg2 -Location $Location -Tag @{creationDate = (Get-Date -Format "yyyy-MM-dd"); environment = "QA"}
}
$Rg1 = "caronew"
$Rg2 = "createnewrg"
$Location = "westeurope"
$resourcegroup1 = Get-AzResourceGroup -Name $Rg1
$resourcegroup1
#Get the tags from resourcegroup1
$Rg1Tags = $resourcegroup1.Tags
$Rg1Tags["environment"] = "QA" #Add the environment tag to the existing tags of Rg1
$Rg1Tags #Check if it is applied
Set-AzResourceGroup -Name $Rg1 -Tag $Rg1Tags #Update the environment to "QA"
try {
$resourcegroup2 = Get-AzResourceGroup -Name $Rg2 -ErrorAction Stop
Write-Output "$Rg2 already exists."
} catch {
New-AzResourceGroup -Name $Rg2 -Location $Location -Tag @{creationDate = (Get-Date -Format "yyyy-MM-dd"); environment = "QA"}
}