【问题标题】:How to prevent API throttling when invoking AWS API?调用 AWS API 时如何防止 API 节流?
【发布时间】:2017-03-07 12:04:42
【问题描述】:

我正在使用 AWS API 来调用 AWS Step Functions。但是,您可以调用的函数数量是有限的。

根据 AWS Step Function 限制,some Step Functions API actions are throttled using a token bucket scheme to maintain service bandwidth.

例如,StartExecution() 的存储桶大小为 100,再填充率为 2/秒。

那么,有没有办法监控存储桶中的可用插槽?

我查看了 AWS python API,它被称为boto3,似乎没有办法获取此信息。但我不确定。

多余的电话会发生什么,他们是否排队?或只是丢弃?

【问题讨论】:

    标签: amazon-web-services aws-sdk boto3 aws-step-functions


    【解决方案1】:

    他们因错误而被拒绝。由于这是一种保护性控制,排队是没有意义的,仅仅丢弃过多的请求也不是一个合理的设计实践。

    节流

    由于请求限制,请求被拒绝。

    HTTP 状态码:400

    http://docs.aws.amazon.com/step-functions/latest/apireference/CommonErrors.html

    您应该能够简单地休眠并重试错误,并具有指数退避。以最简单的形式,这意味着您睡眠 1 秒并重试,然后重试 2、4、8 等等。更好的是,为每个增量添加一个额外的随机间隔,所以 sleep 1 + rand(1) 然后 2 + rand (1) 或沿这些方向的一些变化。

    【讨论】:

    • 再次感谢迈克尔!
    猜你喜欢
    • 2018-04-12
    • 2021-03-08
    • 2019-08-21
    • 2018-04-08
    • 1970-01-01
    • 2021-05-21
    • 2019-12-01
    • 2021-12-20
    • 2017-11-04
    相关资源
    最近更新 更多