如何解决在提交 AWS Batch 作业时遇到的“出现‘请求过多’错误”的错误?

1 分钟阅读
0

我的 AWS Batch 作业失败,并且我收到“出现‘请求过多’错误”的错误。

简短描述

AWS Batch 会根据账户的 AWS 区域限制 AWS 账户中的所有 API 请求。这样可确保 AWS Batch 为所有客户提供一致的性能并保证公平使用。AWS Batch API 配额通常适用于每个 API,包括 DescribeJobsSubmitJob API 调用。

**注意:**对于 SubmitJob 操作,每个账户每秒的最大事务数量 (TPS) 为 50 个。

当您达到 AWS Batch API 配额时,AWS Batch 会返回以下错误消息:

“出现‘请求过多’错误(服务: AWSBatch;状态代码: 429;错误代码: TooManyRequestsException)。”

以下两个常见原因会导致出现“请求过多”错误的错误:

  • 使用 AWS 命令行界面 (CLI) 或 AWS 软件开发工具包 (SDK) 以编程方式同时提交多个作业
  • 使用 AWS Lambda 提交多个作业

解决方法

在对错误进行排查时,请注意以下几点:

  • API 配额仅适用于 AWS 端点。这些配额不适用于您的账户。
  • AWS 按区域限制 Amazon API 请求,以防止每个账户向服务端点发送过多请求。
  • AWS 确保对所有 Amazon API 的所有调用均不超过允许的最大 API 请求速率。最大 API 请求速率因地区而异。

使用重试和带抖动的指数回退算法,然后重新提交作业

有关更多信息,请参阅指数回退和抖动

使用 AWS Batch 阵列作业通过一次 SubmitJob API 调用提交多个作业

有关更多信息,请参阅阵列作业SubmitJob

**注意:**AWS Batch 阵列作业允许您最多提交 10,000 份作业。

调整 API 节流配额

您可以为您的 AWS 账户请求增加 API 节流配额。要请求调整配额,请联系 AWS Support 中心

AWS 官方
AWS 官方已更新 1 年前