You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以编程方式获取Azure资源初始创建时的属性(支持已删除资源场景)

如何以编程方式获取Azure资源初始创建时的属性(支持已删除资源场景)

好问题!我刚好研究过类似的场景,结合你已经尝试过的方法,这里有几个可行的方案可以满足你的需求,不用自己提前存储资源属性:

1. 利用Activity Log中的newResourceSnapshotId直接获取创建快照属性

你注意到的那个newResourceSnapshotId确实是关键!这个ID对应Azure为资源创建事件生成的初始快照,包含了资源创建时的完整属性。你可以通过Azure REST API或CLI来查询这个快照的内容,哪怕资源已经被删除。

操作步骤:

  • 首先从Activity Log中定位到目标资源的创建事件,提取newResourceSnapshotId和资源的完整ID(即使资源已删除,这个ID依然有效)
  • 使用Azure CLI的az rest命令调用Resource Health的快照查询API:
az rest --method get --uri "/subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/{resource-provider-namespace}/{resource-type}/{resource-name}/providers/Microsoft.ResourceHealth/resourceSnapshots/{snapshot-id}?api-version=2020-05-01-preview"

比如你提供的示例中,命令就是:

az rest --method get --uri "/subscriptions/e26fef86-e3b2-4558-98b9-8d8553db6ec1/resourceGroups/rg-jo-test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/changetrackingtest/providers/Microsoft.ResourceHealth/resourceSnapshots/08585057886968675807_6dad72a1-ddf9-4bf8-95b6-9e20644861f1_1719005433_1695818188?api-version=2020-05-01-preview"
  • 响应结果中会包含properties.snapshot字段,里面就是资源创建时的完整属性内容

注意:Azure通常会保留这类快照1-7天,完全满足你1-2天的留存需求。

2. 从资源组部署历史中提取创建时属性

不管是通过ARM模板、Portal还是CLI创建的资源,Azure都会在对应的资源组中生成一个部署记录,这个记录会保存创建资源时使用的模板和参数(也就是初始属性)。即使资源被删除,部署历史依然会保留在资源组中。

操作步骤:

  • 用CLI列出目标资源组的所有成功部署,筛选出关联目标资源的部署:
az deployment group list --resource-group rg-jo-test --query "[?contains(properties.outputResources[].id, 'changetrackingtest')]"
  • 从结果中获取部署的名称,然后查询该部署的详细信息,提取模板和参数:
az deployment group show --resource-group rg-jo-test --name <deployment-name> --query "properties.{template: template, parameters: parameters}"
  • 模板中的resources部分和参数值组合起来,就能还原出资源创建时的完整属性

3. 备选方案:提前捕获创建事件并存储(万不得已时用)

虽然你不想这么做,但如果上述两种方法因为权限或快照过期等原因不可行,可以设置Event Grid订阅:

  • 订阅资源的Microsoft.Resources.ResourceWriteSuccess事件(对应创建/更新成功)
  • 当收到事件时,立即调用ARM APIGET {resource-id}?api-version={version}获取当前资源属性
  • 将属性存入Azure Storage Blob或Log Analytics中,后续即使资源删除也能查询

这个方案需要你自己维护存储,但好处是可以自定义保留时间,灵活性更高。

备注:内容来源于stack exchange,提问作者Jurjen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 12:33:07