處理 AWS Cloud Map DiscoverInstances API 請求節流 - AWS Cloud Map

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

處理 AWS Cloud Map DiscoverInstances API 請求節流

AWS Cloud Map 針對每個區域限制每個 AWS 帳戶的 DiscoverInstancesAPI 要求。節流有助於改善服務的效能,並協助為所有 AWS Cloud Map 客戶提供合理的使用方式。節流可確保對 API 的呼叫不會超過允許的 AWS Cloud Map DiscoverInstancesDiscoverInstancesAPI 要求配額上限。DiscoverInstances源自下列任何來源的 API 呼叫會受到請求配額的限制:

  • 第三方應用程式

  • 命令行工具

  • AWS Cloud Map 控制台

如果您超過 API 節流配額,則會收到RequestLimitExceeded錯誤碼。如需詳細資訊,請參閱 請求率限制

如何套用節流

AWS Cloud Map 使用令牌存儲桶算法來實現 API 節流。使用此算法,您的帳戶擁有一個存儲區,其中包含特定數量的令牌。存儲桶中的令牌數量代表您在任何給定秒鐘的節流配額。單一區域有一個值區,並套用至區域中的所有端點。

請求率限制

節流限制會限制您可以發出的 DiscoverInstancesAPI 請求數量。每個請求都會從存儲桶中刪除一個令牌。例如,DiscoverInstancesAPI 操作的存儲桶大小為 2,000 個令牌,因此您可以在一秒鐘內發出多達 2,000 個DiscoverInstances請求。如果您在一秒內超過 2,000 個要求,就會受到限制,而在第二個內的其餘要求會失敗。

時段會以設定的比率自動補充。如果存儲桶沒有容量,則每秒都會添加一組數量的令牌,直到存儲桶達到容量為止。如果在補充令牌到達時存儲桶有容量,則這些令牌將被丟棄。DiscoverInstancesAPI 操作的存儲桶大小為 2,000 個令牌,重新填充率為每秒 1,000 個令牌。如果您在一秒鐘內發出 2,000 個 DiscoverInstancesAPI 請求,則存儲桶會立即減少為零 (0) 個令牌。然後,存儲桶每秒最多可重新填充 1,000 個令牌,直到達到 2,000 個令牌的最大容量為止。

您可以在添加到存儲桶中時使用令牌。在發出 API 請求之前,您不需要等待存儲桶的最大容量。如果您在一秒內發出 2,000 個 DiscoverInstancesAPI 請求來耗盡儲存貯體,則在此之後,您仍然可以在需要的時間內每秒發出多達 1,000 個 DiscoverInstancesAPI 請求。這意味著您可以在將補充令牌添加到存儲桶時立即使用它們。只有當您每秒發出的 API 請求少於補充率時,值區才會開始重新填充到最大容量。

重試或批次處理

如果 API 要求失敗,您的應用程式可能需要重試該要求。若要減少 API 要求的數目,請在連續要求之間使用適當的睡眠間隔。為了獲得最佳結果,請使用較長或可變的休眠間隔。

計算休眠間隔

當您需要輪詢或重試 API 請求時,建議您使用指數退避演算法來計算 API 呼叫之間的休眠間隔。透過在連續錯誤回應的重試之間使用逐漸更長的等待時間,您可以減少失敗的要求數目。有關此算法的詳細信息和實現示例,請參閱 AWS SDK 和工具參考指南中的重試行為

調整 API 節流配額

您可以要求提高帳戶的 AWS API 節流配額。若要請求調節配額,請聯絡 AWS Support 中心