1

我正在尝试获取我的 Azure 订阅中存在的所有存储帐户的列表,但我收到了一个限制错误。

com.microsoft.azure.CloudException: Status code 429, {"error":{"code":"ResourceCollectionRequestsThrottled","message":"Operation 'Microsoft.Storage/storageAccounts/read' failed as server encountered too many requests. Please try after '17' seconds. Tracking Id is 'e982a894-0f3e-4291-a9b3-e147c18f8f60'."}}

此请求之前的请求打印还有 13869 次剩余订阅读取,但仍然失败。

x-ms-ratelimit-remaining-subscription-reads: 13869

我的订阅中大约有 60 个存储帐户,而且数量很少。

只有在列出存储帐户时才知道是什么导致了这个和那个。

4

1 回答 1

3

根据这篇文章

对于每个订阅和租户,资源管理器将读取请求限制为每小时 15,000 个,写入请求限制为每小时 1,200 个。这些限制适用于每个 Azure 资源管理器实例;每个 Azure 区域都有多个实例,Azure 资源管理器部署到所有 Azure 区域。因此,在实践中,限制实际上远高于上面列出的限制,因为用户请求通常由许多不同的实例提供服务。如果您的应用程序或脚本达到这些限制,您需要限制您的请求。

因此,如果您达到请求限制,资源管理器会在标头中返回 429 HTTP 状态代码和 Retry-After 值。Retry-After 值指定应用程序在发送下一个请求之前应等待(或休眠)的秒数。如果您在重试值过去之前发送请求,则不会处理您的请求并返回新的重试值。

我建议您可以使用这种方式来获取阅读时间的数量。如果满足限制,您可以编写代码来限制应用程序发送请求。

于 2017-09-08T09:17:01.863 回答