我一直在尝试获取 JSON 格式的 Azure 资源拓扑,但找不到任何内容。
我尝试使用 ARI 模块,但没有映射特定关系,并且有 Azure 资源可视化工具,但提供 png/jpeg/svg 格式的输出。在 AWS 中,您可以使用 AWS Config Service 中的查询来映射关系。
在 Azure 中,无法直接获取
JSON
格式的 Azure 资源拓扑。下面详细介绍了一些替代解决方法,可获取 JSON
格式的 Azure 资源信息。
根据此博客,您可以通过以下
az rest
命令调用资源拓扑URL并检索详细信息。
az rest --method get --url "https://management.azure.com/subscriptions/xxxx/resourceGroups/xxxx/providers/Microsoft.Resources/resourceTopology?api-version=2019-10-01" --output json > topology.json
此外,您还可以使用如下所示的 Azure 资源图浏览器查询来检索资源详细信息,并在 Azure 仪表板中表示格式化的详细信息。
resources
| project id, name, resourceGroup
| join kind=inner (resourcecontainers | project name, id) on $left.resourceGroup == $right.name
| project id, name, parentResourceId=resourceGroup
(可选)如博客中所述,您可以通过从 Azure 门户导出 ARM 模板来使用
ARM template Viewer
查看资源组资源之间的关系。但这不会提供任何 JSON
格式化的结果。
另一种解决方法是使用如下所示的 PowerShell 脚本来检索 Azure 资源详细信息。
$topologylist = @()
$resourcesinfo = Get-AzResource
foreach ($res in $resourcesinfo) {
$topology += @{
ResourceName = $res.Name
ResourceType = $res.ResourceType
ParentResource = $res.ResourceId -replace "/[^/]+$", ""
Location = $res.Location
ResourceGroup = $res.ResourceGroupName
}
}