使用 JAVA API 获取我的 Azure 订阅中所有资源的详细信息
Posted
技术标签:
【中文标题】使用 JAVA API 获取我的 Azure 订阅中所有资源的详细信息【英文标题】:Get details of all resources in my Azure Subscription using JAVA API 【发布时间】:2016-12-30 08:00:32 【问题描述】:我正在寻找类似于 this 但使用 JAVA REST API 调用的东西。 我想获取所有资源(包括虚拟机、存储磁盘、网络设备等)及其基本属性(如 IP 地址、磁盘空间等)的列表 我尝试在this link 之后进行 API 调用。
当我向这个 url 发出 http 请求时
"https://management.azure.com/subscriptions/"+subscriptionId+"/resourceGroups/"+resourceGroupName+"/providers/Microsoft.Compute/virtualMachines?api-version="+apiVersion
但我收到 401 错误。我在调用正确的 URL 吗?如果不是,我应该调用哪个 URL?
【问题讨论】:
【参考方案1】:但我收到 401 错误。我在调用正确的 URL 吗?如果不 我应该调用哪个 URL?
您调用的是正确的 URL,但是您为 API 调用提供了不正确的参数。您提到的link
是用于拨打Azure Service Management API
电话,但是您需要做的是拨打Azure Resource Manager (ARM) API
电话。
与 Azure 服务管理 API 一样,ARM API 请求需要经过身份验证。如果是前者,则使用管理证书对请求进行身份验证。如果是后者,则需要使用通过针对 Azure AD 对用户进行身份验证而获得的令牌。
有关验证/授权 ARM API 请求的更多详细信息,请参阅此链接:https://azure.microsoft.com/en-us/documentation/articles/resource-manager-api-authentication/。
为了列出资源组中的所有资源,您绝对可以使用 ARM REST API。但是,现在您可以使用可以直接使用的 SDK。要了解有关这些 SDK 的更多信息,请参阅此链接:https://azure.microsoft.com/en-in/blog/azure-resource-manager-preview-sdks/。
【讨论】:
我已将 sdk 添加为 eclipse 中的新项目。在 Azure 门户中使用 AD 进行身份验证。现在,当我运行 ListVirtualMachineImages.java 时,我得到了 500 多个项目,但我只有一个虚拟机。我应该运行哪个文件来获取我的资产的详细信息? 我建议提出一个全新的问题。请包含您的代码和您看到的输出。 如果我使用上面提到的 url 进行 rest api 调用,我应该传递哪些参数? 你能告诉我如何创建令牌吗? 有人能告诉我如何创建令牌以从 Postman 或 java 代码传递吗?以上是关于使用 JAVA API 获取我的 Azure 订阅中所有资源的详细信息的主要内容,如果未能解决你的问题,请参考以下文章
如何在CSP的Partner Center API上以编程方式创建Azure订阅?
为用户创建订阅的 Azure API 管理 REST 调用(缺失)