我们的资产分为本地资产和云资产。我们的 DNS 托管在 Azure DNS 上。
我们有一个程序在我们的本地托管服务器上运行,并通过Azure REST API使用服务器的公共 IP 地址(这些服务器通常位于住宅 ADSL 连接上)。基本上,这是 noip.com 的本土替代品。
即使 IP 地址不变,程序每次都会直接更新。API 当然提供读取访问权限,因此我们可以修改程序以首先检查当前 IP,但(显然)采用这种方法 API 调用的数量实际上会略有增加。
请求的数量永远不会很大(例如,程序每 10 分钟运行一次,最多有 300 个服务器),但与我们帐户的大小相比,请求的数量会比典型的管理应用程序可能创建的请求量要高。
我无法找到有关 API 速率限制或使用指南的任何信息。
我想要避免的是意外的服务损失,因此,我将非常感激任何关于这是否是 API 的批准用途的指导以及有关 API 速率限制的任何信息。
答案1
更新 DNS 资源记录是一种常见的企业场景。如果拥有 300 台服务器,并且每 10 分钟(600 秒)更新一次,则平均每秒仅进行 0.5 次 API 调用。这不会有问题。
但是,我会向 Microsoft 开具支持单,让他们了解您的情况以及您向 Azure DNS 发出请求的 IP 地址。这不是必需的,但也不会有什么坏处。
答案2
我针对此问题联系了 Microsoft 支持,属于“配额”支持类别。
以下是回复:
如果您指的是 Azure DNS“创建或更新”方法的命中次数(根据文档:https://docs.microsoft.com/en-us/rest/api/dns/recordsets/createorupdate),最终将是一个 NRP 调用。我们不限制 NRP 调用,但在后端,资源管理器请求会根据以下限制进行限制https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-request-limits。其中指出“对于每个订阅和租户,资源管理器将读取请求限制为每小时 15,000 个,将写入请求限制为每小时 1,200 个。这些限制适用于每个 Azure 资源管理器实例;每个 Azure 区域都有多个实例,并且 Azure 资源管理器部署到所有 Azure 区域。因此,实际上,限制实际上比上面列出的要高得多,因为用户请求通常由许多不同的实例提供服务。
如果您的应用程序或脚本达到这些限制,则需要限制请求。本主题向您介绍如何确定在达到限制之前剩余的请求数,以及在达到限制时如何响应。
当达到限制时,您会收到 HTTP 状态代码 429“请求太多”。