本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
處理 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 使用令牌存儲桶算法
請求率限制
節流限制會限制您可以發出的 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 中心