如何获取JSON格式的Azure资源拓扑?

问题描述 投票:0回答:1

我一直在尝试获取 JSON 格式的 Azure 资源拓扑,但找不到任何内容。

我尝试使用 ARI 模块,但没有映射特定关系,并且有 Azure 资源可视化工具,但提供 png/jpeg/svg 格式的输出。在 AWS 中,您可以使用 AWS Config Service 中的查询来映射关系。

azure azure-resource-manager topology azure-resource-graph
1个回答
0
投票

在 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

enter image description here

enter image description here

(可选)如博客中所述,您可以通过从 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
    }
}

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.