【问题标题】:Get list of SKUs and SKU capacities for Azure Subscription using Azure Rest API使用 Azure Rest API 获取 Azure 订阅的 SKU 和 SKU 容量列表
【发布时间】:2017-04-05 06:07:09
【问题描述】:

我们正在开发一个应用程序,允许我们的 Azure 管理员监控组织中人员的 Azure 资源请求。

有一个要求,我想通过某些 API(如果可用)获取所有可能的 SKU 和 SKU 容量的列表。我本可以对这些值进行硬编码,但考虑到 Microsoft 对 Azure 订阅计划进行更改的频率,我想使其更通用,并由 Azure 本身提供。

我在 Azure Rest API 下找不到任何 API 端点,它为我们提供了所请求资源类型的 SKU 和容量列表。

有人知道了吗?如果没有,有什么替代和更好的方法?

拉胡尔。

【问题讨论】:

  • 我推测它在提供者之间并不一致(有些可能具有该功能,有些没有,并且实现可能会有所不同),所以要更精确。总的来说,我认为没有简单的答案
  • 确实,供应商的 sku 不一致。这就是我想从 API 获取有效的 SKU 和容量而不是继续寻找它们并在本地数据库中手动更新它们的原因。我希望微软已经为此做了一些准备。至少,我在他们的 API 上找不到它
  • 有一个 API。我记得他们在 MSDN 上有文档时看到过它。我不是 100% 确定,但我认为它被称为 Features。你可以试试这个链接:docs.microsoft.com/en-us/rest/api/resources/features
  • @GauravMantri 我无法从features API 获得很多信息 :-(
  • 你能稍微扩展一下这个场景吗? IOW 您要具体解决什么问题 - 防止创建资源?审核资源创建?在资源创建时包装 UI?

标签: azure azure-resource-manager


【解决方案1】:

Azure 资源管理器中 Azure SKU API 的模式是 HTTP GET {resourceId}/skus?api-version=...

正如其他人所指出的,似乎没有一种好方法可以发现哪些 ARM 资源类型已实现 SKU API。如果您今天正在寻找通用选项,我会考虑以下方法--

1) 收集订阅中的 ARM 资源 ID 列表。您可以使用 ARM 资源 API 来获取此列表。

2) 对于每个资源 ID,调用以下命令来检索 SKU:GET {resourceId}/skus?api-version=...

3) 跟踪哪些 ARM 资源类型返回非 2xx 状态代码。这些资源类型不实现 SKU API,您的代码现在应该忽略这些资源类型。

以下是两个常见 ARM 资源类型的 SKU API 示例:

armclient get /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachineScaleSets/{name}/skus?api-version=2017-03-30

armclient 获取 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Web/serverFarms/{name}/skus?api-version=2014-04-01

【讨论】:

    【解决方案2】:

    正如 4c74356b41 所述,有些可能具有该功能,有些则没有。我们可以从官方document 获取 Azure REST API。并且我们可以得到一些List SKU REST API,详细请参考截图。您也可以将您的 feedback 提供给 Azure 团队。

    【讨论】:

    • 感谢 Tom 的回复,如果 Azure 提供用于列出 SKU 的 API 以及通过模板预配所需的最低限度的东西,那就太好了。我正在提供反馈,尽管我确信微软需要数月/数年才能真正实施它。 :-)
    【解决方案3】:

    看起来 Azure 现已提供此 REST API:

    Resource Skus - List

    获取订阅中的所有资源。

    GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Compute/skus?api-version=2021-07-01

    示例响应:

    {
      "value": [
        {
          "resourceType": "virtualMachines",
          "locations": [
            "westus"
          ],
          "capabilities": [
            {
              "name": "MaxResourceVolumeMB",
              "value": "20480"
            },
            {
              "name": "OSVhdSizeMB",
              "value": "1047552"
            },
            {
              "name": "vCPUs",
              "value": "1"
            },
            {
              "name": "HyperVGenerations",
              "value": "V1"
            },
            {
              "name": "MemoryGB",
              "value": "0.75"
            },
            {
              "name": "MaxDataDiskCount",
              "value": "1"
            },
            {
              "name": "LowPriorityCapable",
              "value": "False"
            },
            {
              "name": "PremiumIO",
              "value": "False"
            },
            {
              "name": "vCPUsAvailable",
              "value": "1"
            },
            {
              "name": "ACUs",
              "value": "50"
            },
            {
              "name": "vCPUsPerCore",
              "value": "1"
            },
            {
              "name": "EphemeralOSDiskSupported",
              "value": "False"
            },
            {
              "name": "AcceleratedNetworkingEnabled",
              "value": "False"
            },
            {
              "name": "RdmaEnabled",
              "value": "False"
            },
            {
              "name": "MaxNetworkInterfaces",
              "value": "2"
            }
          ],
          "locationInfo": [
            {
              "location": "westus",
              "zones": [
                "2",
                "1"
              ],
              "zoneDetails": [
                {
                  "name": [
                    "2"
                  ],
                  "capabilities": [
                    {
                      "name": "UltraSSDAvailable",
                      "value": "True"
                    }
                  ]
                }
              ]
            }
          ],
          "name": "Standard_A0",
          "tier": "Standard",
          "size": "A0",
          "family": "standardA0_A7Family"
        },
        {
          "resourceType": "virtualMachines",
          "locations": [
            "westus"
          ],
          "capabilities": [
            {
              "name": "MaxResourceVolumeMB",
              "value": "71680"
            },
            {
              "name": "OSVhdSizeMB",
              "value": "1047552"
            },
            {
              "name": "vCPUs",
              "value": "1"
            },
            {
              "name": "HyperVGenerations",
              "value": "V1"
            },
            {
              "name": "MemoryGB",
              "value": "1.75"
            },
            {
              "name": "MaxDataDiskCount",
              "value": "2"
            },
            {
              "name": "LowPriorityCapable",
              "value": "True"
            },
            {
              "name": "PremiumIO",
              "value": "False"
            },
            {
              "name": "vCPUsAvailable",
              "value": "1"
            },
            {
              "name": "ACUs",
              "value": "100"
            },
            {
              "name": "vCPUsPerCore",
              "value": "1"
            },
            {
              "name": "EphemeralOSDiskSupported",
              "value": "False"
            },
            {
              "name": "AcceleratedNetworkingEnabled",
              "value": "False"
            },
            {
              "name": "RdmaEnabled",
              "value": "False"
            },
            {
              "name": "MaxNetworkInterfaces",
              "value": "2"
            }
          ],
          "locationInfo": [
            {
              "location": "westus",
              "zones": [
                "1",
                "2",
                "3"
              ]
            }
          ],
          "name": "Standard_A1",
          "tier": "Standard",
          "size": "A1",
          "family": "standardA0_A7Family"
        }
      ],
      "nextLink": null
    }
    

    【讨论】:

      猜你喜欢
      • 2018-07-07
      • 2022-01-13
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-20
      • 2021-01-20
      • 2023-02-13
      相关资源
      最近更新 更多