我们有大量 Azure 订阅,目前已达到数百个。
我希望生成一份报告(最好使用 Azure Powershell 或 Azure CLI)以递归提取分配给每个资源组中每个资源的所有标签的列表,用于 40-50 个订阅。
目前,我可以列出在资源组级别分配的所有标签,但我根本找不到列出分配给每个资源组内各个资源的标签的方法。我想从中提取此报告的订阅和资源组列表保存在一个 CSV 文件中,该文件包括两列,分别显示订阅名称和资源组。
有关如何实现上述目标的任何提示都非常棒,非常感谢。
答案 0 :(得分:1)
不是详细的代码,而是这里的想法。
1.你应该写一个循环,在循环中,每次使用这个cmdlet改变subscription
:
Set-AzContext -Subscription $subscription_name
。
2.然后使用此 cmdlet 获取指定 resource group
中的所有 subscription
:
$resource_groups = Get-AzResourceGroup
3.然后写一个嵌套循环(loop for each resource group
),在这个嵌套循环中,使用这个cmdlet得到一个azure resources
内的所有resource group
:
foreach($rg in $resource_groups){
$azure_resources = Get-AzResource -ResourceGroupName $rg.ResourceGroupName
}
4.在步骤3中再写一个嵌套循环,这个循环用于遍历指定azure resources
内的所有resource group
。然后使用下面的代码为 azure resource
中的每个 resource group
获取标签:
foreach($r in $azure_resources){
#the following code can get all the tags for one resource
$r.tags
}