【发布时间】:2025-12-21 17:00:07
【问题描述】:
Azure 的策略服务带有许多内置策略。可以使用 Azure 的 Java SDK 和 Azure 资源管理器访问它们。可以使用getByName()method in the SDK获取具体策略的定义。
代码如下所示:
AzureResourceManager azureResourceManager = AzureResourceManager
.authenticate(credential, profile)
.withSubscription("<my-subscription-id>");
PolicyDefinition policyDefinition = azureResourceManager.policyDefinitions().getByName("<name>");
为了测试这段代码,我去控制台找到了一个预建策略的名称。我找到了两个不同的名字,一个在文中:
和定义中的不同:
但是,尝试使用这些名称中的任何一个来检索策略定义都会导致相同的错误:
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
问题:这个方法要找什么名字?或者有没有更好的方法来检索策略定义?
【问题讨论】:
-
名称是“06a78e20-9358-41c9-923c-fb736d382a4d”,您应该在代码中使用它。另一个名称是显示名称。但是我对java不熟悉,你应该打开fiddler查看详细错误,也可以选择使用相关apiPolicy Definitions - Get Built In。
-
感谢您的评论,但正如我在问题中解释的那样,该名称会导致上述错误。您提供的链接适用于 REST API,而不是 Java API。
-
是的,它不是 java api。我的意思是你可以通过使用 REST API 来尝试它,然后打开 fiddler 来检查请求的详细信息。然后在使用您的 java 代码时也使用 fiddler 检查请求详细信息。最后,您可以比较这 2 个请求,看看是否有任何差异。
标签: java azure azure-resource-manager azure-policy