

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

# Handle AWS Cloud Map DiscoverInstances API 請求調節
<a name="throttling"></a>

AWS Cloud Map 會根據區域調節每個 AWS 帳戶的 [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) API 請求。調節有助於改善服務的效能，並協助為所有 AWS Cloud Map 客戶提供公平的使用。調節可確保對 AWS Cloud Map [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) API 的呼叫不超過允許的最大 [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) API 請求配額。來自下列任何來源的 [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) API 呼叫受請求配額限制：
+ 第三方應用程式
+ 命令列工具
+  AWS Cloud Map 主控台

如果您超過 API 限流配額，您會收到`RequestLimitExceeded`錯誤碼。如需詳細資訊，請參閱[請求率限制](#throttling-rate-based)。

## 如何套用限流
<a name="throttling-how"></a>

AWS Cloud Map 使用[字符儲存貯體演算法](https://en.wikipedia.org/wiki/Token_bucket)來實作 API 限流。透過此演算法，您的帳戶會有一個儲存*貯*體，其中包含特定數量*的字符*。儲存貯體中的字符數目代表您在任何指定秒的限流配額。單一區域有一個儲存貯體，且適用於該區域中的所有端點。

### 請求率限制
<a name="throttling-rate-based"></a>

調節會限制您可以提出的 [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) API 請求數量。每個請求都會從儲存貯體移除一個權杖。例如，[DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) API 操作的儲存貯體大小為 2，000 個字符，因此您可以在一秒內提出最多 2，000 個 [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) 請求。如果您在一秒內超過 2，000 個請求，系統會調節您，而且該秒內剩餘的請求會失敗。

儲存貯體會自動以設定的速率重新填充。如果儲存貯體沒有容量，則會每秒新增一組字符，直到儲存貯體達到容量為止。如果補充字符到達時儲存貯體處於容量，則會捨棄這些字符。[DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) API 操作的儲存貯體大小為 2，000 個字符，補充速率為每秒 1，000 個字符。如果您在一秒內提出 2，000 個 [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) API 請求，儲存貯體會立即減少為零 (0) 個字符。然後，儲存貯體每秒最多可重新填充 1，000 個字符，直到達到 2，000 個字符的最大容量為止。

您可以在權杖新增至儲存貯體時使用權杖。在提出 API 請求之前，您不需要等待儲存貯體達到最大容量。如果您在一秒內提出 2，000 個 [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) API 請求以耗盡儲存貯體，您仍然可以在之後視需要每秒提出最多 1，000 個 [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html) API 請求。這表示您可以在重新填充字符新增至儲存貯體時立即使用它們。當您每秒提出較少的 API 請求時，儲存貯體才會開始重新填充至最大容量。

### 重試或批次處理
<a name="retries"></a>

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

### 計算休眠間隔
<a name="calculate_delay_interval"></a>

當您需要輪詢或重試 API 請求時，建議您使用指數退避演算法來計算 API 呼叫之間的休眠間隔。透過在連續錯誤回應的重試之間使用逐步較長的等待時間，您可以減少失敗的請求數量。如需此演算法的詳細資訊和實作範例，請參閱 *AWS SDKs 和工具參考指南*中的[重試行為](https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html)。

## 調整 API 限流配額
<a name="throttling-increase"></a>

您可以請求提高 AWS 帳戶的 API 限流配額。若要請求調節配額，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。