如何使用 JavaScript AWS IAM SDK 3 处理节流?
How to handle throttling with JavaScript AWS IAM SDK 3?
我正在使用 AWS 的 @aws-sdk/client-iam
SDK JavaScript,在基于节点的服务器中。我们正在使用 GetGroupCommand
.
如果我们主动调用上面的命令 AWS SDK 会抛出 Throttling
错误,其中一个字段 error?.$metadata?.totalRetryDelay
告诉我们将在多少毫秒后重试请求。
基于这次试验 - 我们已经将调用修改为休眠一定时间的错误,但是当调用太多时,它们都会在休眠后重试,导致 AWS 服务器再次泛滥并抛出 Throttling
错误。
我找不到 AWS JS IAM SDK 3 的任何 guide/reference 解释在什么情况下它可能会抛出 Throttling
错误。
有中间件https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_middleware_retry.html我想这是我们可以使用的东西,但不确定如何使用。 github 存储库或 SDK 指南中未提及 throttling
AWS SDK JS 3 的示例示例或最佳实践。
你能告诉我如何处理 AWS SDK 3 for JS 中的这个 Throttling
问题吗?
以下 None 有任何关于节流的有用信息,
SDK参考: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index.html
开发人员指南: https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/welcome.html
代码示例: https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sdk-code-samples.html
如果您的 nodejs 程序没有向 API 发送多个并发请求,那么 totalRetryDelay
值对您最有用。它会告诉您在发送 一个 个请求之前要等待多长时间,而不是再发送 10 个或 50 个。
您的问题的解决方案可能是将您的请求放入某种内部队列,并在它们之间有一个短暂的延迟,一次发送一个。
或者,如果您知道您发送了多少并发请求,您可以尝试将 totalRetryDelay
乘以该数字并延迟那么多。
我正在使用 AWS 的 @aws-sdk/client-iam
SDK JavaScript,在基于节点的服务器中。我们正在使用 GetGroupCommand
.
如果我们主动调用上面的命令 AWS SDK 会抛出 Throttling
错误,其中一个字段 error?.$metadata?.totalRetryDelay
告诉我们将在多少毫秒后重试请求。
基于这次试验 - 我们已经将调用修改为休眠一定时间的错误,但是当调用太多时,它们都会在休眠后重试,导致 AWS 服务器再次泛滥并抛出 Throttling
错误。
我找不到 AWS JS IAM SDK 3 的任何 guide/reference 解释在什么情况下它可能会抛出 Throttling
错误。
有中间件https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_middleware_retry.html我想这是我们可以使用的东西,但不确定如何使用。 github 存储库或 SDK 指南中未提及 throttling
AWS SDK JS 3 的示例示例或最佳实践。
你能告诉我如何处理 AWS SDK 3 for JS 中的这个 Throttling
问题吗?
None 有任何关于节流的有用信息,
SDK参考: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index.html
开发人员指南: https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/welcome.html
代码示例: https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sdk-code-samples.html
如果您的 nodejs 程序没有向 API 发送多个并发请求,那么 totalRetryDelay
值对您最有用。它会告诉您在发送 一个 个请求之前要等待多长时间,而不是再发送 10 个或 50 个。
您的问题的解决方案可能是将您的请求放入某种内部队列,并在它们之间有一个短暂的延迟,一次发送一个。
或者,如果您知道您发送了多少并发请求,您可以尝试将 totalRetryDelay
乘以该数字并延迟那么多。