是否有 AWS API 用于获取 AWS 服务的当前请求令牌桶大小和重新填充率?

Is there an AWS API for getting current request token bucket sizes and refill rates for an AWS service?

我正在开发一个使用 golang API (https://aws.amazon.com/sdk-for-go/) 调用 AWS API 的软件应用程序。我的软件服务正在构建云环境的实时拓扑,因此需要尽可能频繁地为云帐户中的每个服务调用此 API。

我正在寻找有关以下示例 API 调用的信息,此处使用其 AWS CLI 等效项显示,我每秒可以发出多少次调用:

$ aws iam list-users
$ aws iam list-roles
$ aws ec2 describe-instances
... 

这些 API 调用受 AWS 调用请求令牌桶大小和重新填充率的速率限制(参见 https://docs.aws.amazon.com/AWSEC2/latest/APIReference/throttling.html#throttling-limits-cost-based 作为 EC2 这些速率的示例)。当然,云客户可以提高其中一些速率和存储桶大小。

我的问题是,是否有针对所有服务的这些费率的 API,以便我的应用程序可以了解当前存储桶大小和重新填充率,以免受到限制和 运行 违反我的客户合同。换句话说,我希望将 EC2 请求令牌桶大小作为 JSON 传送到我的软件应用程序(以及所有其他 AWS 服务)。这可能吗?

据我所知,截至撰写此回复时,AWS 上的令牌桶算法实施似乎很难掌握。

许多服务没有这些数字,最大存储桶大小和存储桶重新填充率,已在文档中发布,与 GCP 的 API 节流不同,后者简单,易于猜测和编写快速规则(https://cloud.google.com/compute/docs/api-rate-limits) or Azures', which is is also well documented (https://docs.microsoft.com/en-us/graph/throttling and https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/request-limits-and-throttling).

此外,API 在 AWS 上肯定没有 API 节流桶大小和重新填充率可用。

因此,您的 AWS 应用程序的 API 节流响应必须非常特定于应用程序并针对您的特定需求进行调整。