You need to enable JavaScript to run this app. 使用Azure Java SDK按名称获取策略定义遇404:正确名称要求及获取方案
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure Java SDK按名称获取策略定义遇404:正确名称要求及获取方案

Azure Policy Java SDK 获取内置策略时的404问题

Azure Policy 内置了大量预置策略规则,可通过 Azure Java SDK 对接 Azure Resource Manager 完成资源访问,SDK 提供了 getByName() 方法用于按名称获取特定策略的定义,基础示例代码如下:

AzureResourceManager azureResourceManager = AzureResourceManager
        .authenticate(credential, profile)
        .withSubscription("<my-subscription-id>");       
PolicyDefinition policyDefinition = azureResourceManager.policyDefinitions().getByName("<name>");

在测试上述代码的过程中,登录 Azure 控制台查找目标内置策略的可用名称时,发现控制台界面存在两类不同的策略标识:

  • 策略列表页面向用户展示的友好显示名称,例如「Audit VMs that do not use managed disks」
  • 策略定义详情页中展示的全局唯一资源标识,例如 06a78e20-9358-41c9-923c-fb736d382a4d

但将以上两类标识分别作为参数传入 getByName() 方法时,均会返回404资源不存在的错误,错误提示分别为:

Status code 404, The policy definition 'Audit VMs that do not use managed disks' could not be found.
Status code 404, The policy definition '06a78e20-9358-41c9-923c-fb736d382a4d' could not be found

目前存在两个待解决的疑问:

  • getByName() 方法要求传入的参数到底对应哪类标识?
  • 针对 Azure 内置策略定义,是否存在更适配的SDK调用方式完成资源获取?

内容的提问来源于stack exchange,提问作者james.garriss

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 07:36:03